标签: application-development

如何读取 dbus-monitor 输出?

我正在尝试使用dbus-monitor来尝试了解 dbus 在 Ubuntu 环境中的工作方式。在这方面我有几个问题:

  1. 你能告诉我如何正确阅读以下内容吗?我了解大意,但不了解细节。

    signal sender=:1.1948 -> dest=(null destination) serial=1829990 path=/org/ayatana/menu/DA00003; interface=org.ayatana.dbusmenu; member=ItemPropertyUpdated
    int32 23
    string "enabled"
    variant boolean true
    method call sender=:1.6 -> dest=org.freedesktop.Notifications serial=1399 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications;
    member=GetCapabilities
    
    Run Code Online (Sandbox Code Playgroud)

    我知道第一个是信号,而第二个是方法。目的地是否意味着信号可以有特定的接收器/插槽?什么是会员?信号后面的列表项是信号中传递的参数吗?什么是发件人连续出版物

  2. 我注意到音量控制和通知之间的关系。从我从 dbus-monitor 输出中读到的

    method call sender=:1.6 -> dest=org.freedesktop.Notifications serial=1400 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
    string "gnome-settings-daemon"
    uint32 0
    string "notification-audio-volume-medium"
    string " "
    string ""
    array [
    ]
    array [
    dict entry(
    string "value"
    variant int32 38
    )
    dict entry( …
    Run Code Online (Sandbox Code Playgroud)

notification python dbus application-development

24
推荐指数
2
解决办法
2万
查看次数

如何向 python 非 gtk、非 qt 应用程序添加对全局菜单的支持?

我正在寻找关于如何向非 gtk、非 qt 应用程序添加全局菜单支持的良好文档(示例、教程或指南)。(在 gtk 中,它对主菜单“神奇地”工作......)。我想与它一起使用的工具包是kivy,它支持 glib-mainloop(例如用于 gstreamer),所以原则上都应该在那里工作。

我已经看到了Dbusmenu这里的 API 参考,但这对理解机制不是很有帮助。

有一个简短的示例用于创建包含 dbus-menu的启动器快速列表,但不包含 global-menu / appmenu。

有一个wiki 页面不包含任何相关信息,除了“欢迎支持其他工具包上的应用程序菜单,但不是 DX 团队的优先事项,需要帮助。”

该图有一些来自指标应用菜单源代码的信息,但还不够,在 developer.ubuntu.com 上找不到,需要更多解释:

在此处输入图片说明

所以:

  • 获取要显示的一组菜单项(Dbusmenu.Menuitem)的过程是什么?
  • 客户端和服务器分别扮演什么角色?(其中哪些应该在我的应用程序中运行?或者两者都运行?)

类似问题

python unity appmenu application-development

24
推荐指数
1
解决办法
4406
查看次数

如何编写将在 Ubuntu 以及其他发行版中显示的状态图标?

有问题的应用程序执行一些操作(此处将音频连接到网络流)并在这些操作成功时最小化运行。因此需要一个状态图标来显示连接状态(例如已连接/已断开连接)。仅当单击该图标时,应用程序窗口才会打开以访问更多选项。

使用 Python 2.6 和 pyGtk 我通过使用gtk_status_icon方便地实现了这一点。我特意编写了在尽可能多的发行版上运行的应用程序,包括各种 Ubuntu 版本。只有在用户安装它们之后,我才小心使用可能的依赖项。

但是现在我听说未来的 Ubuntu 版本将不再支持 gtk_status_icon。要求开发人员改用应用程序指示器。什么是最佳实践以确保:

  1. 应用程序的本地图标显示正确
  2. 该应用程序仍将在未来的 Ubuntu 版本中运行并显示其图标。
  3. 该应用程序将同时运行,并在其他环境中显示它的图标指示的小程序libappindicator蟒蛇,appindicator不提供。

如果指标小程序未运行,应用程序指标回退机制到 gtk_status_icon 将不起作用。如果没有要从中导入的appindicator模块,Python 解释器将不会运行。我是否需要为不同的发行版开发不同的版本,还是有更好的方法来解决这个问题。

除了Ubuntu Wiki 中给出的示例之外,我在哪里可以找到有关如何使用 ApplicationIndicator 的文档?提供了哪些命令来检查指标小程序是否正在运行以避免为 Ubuntu 与非 Ubuntu 发行版编写不同的源代码?

applet indicator python development application-development

23
推荐指数
3
解决办法
5034
查看次数

是否可以将 Python 与 Ubuntu SDK 一起使用?

David Planella回答我发布的一个问题时写道:

...为 Ubuntu 开发应用程序的推荐方法是 Ubuntu SDK。

所以我安装了它,但看起来支持的编程语言是 C++。这是否意味着我需要了解 C++ 才能为 Ubuntu 开发新应用程序?C++ 现在是 Ubuntu 应用程序推荐的编程语言吗?

Python 呢,我开始学习它是希望为 Ubuntu 开发应用程序。

python c++ application-development ubuntu-sdk

23
推荐指数
1
解决办法
6370
查看次数

申请审查委员会如何运作?

https://wiki.ubuntu.com/AppReviews的申请审核流程是好的对上游的软件开发商和Ubuntu打包。重点似乎是上游开发人员的优势在于可以更快更轻松地将他们的应用程序放入软件中心,同时他们通过准备他们的应用程序进行打包来帮助 Ubuntu 包管理器。

这似乎是一件大事。wiki 上的说明指出,开发人员完成其中列出的一些步骤,包括将应用程序上传到 PPA,并请求审查,经过一段时间审查,并接受并包含到 Ubuntu 存储库中,或者根本不接受。

虽然这看起来是一种将应用程序快速添加到软件中心的简单、公平的方法,但我认为我遗漏了一些东西。我注意到,虽然有一些请求待处理,但那里没有(或几乎没有)活动。一切都好像在大约 5-6 个月前被冻结了一样,闻起来有点被遗弃了。

我是否理解错误,一切正常(例如,他们仅在 UDS 接受审查?),还是发生了某些变化?任何人都可以向我解释清楚,这个审查(和包含在存储库中)的过程究竟如何工作的?

community packaging application-development application-submission

22
推荐指数
1
解决办法
870
查看次数

某些程序中的黑色标题小部件是什么?

在某些 ubuntu 程序(ubuntu 控制面板、系统设置)中,但不是例如在 banshee 中,窗口的顶部包含暗色调的元素(带有 Ambience 主题)。但我找不到自动执行此操作的标准小部件。

这些颜色都是手工设置的吗(而不是标准的小部件+主题)?如果它们是手动设置的,它们在主题中来自哪里(gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color) 中的参数是什么)?

编辑:它似乎不是一个简单的 Gtk.Toolbar。如果我运行以下代码:

from gi.repository import Gtk
window = Gtk.Window()
window.set_default_size(200, -1)
window.connect("destroy", lambda q: Gtk.main_quit())
toolbar = Gtk.Toolbar()
window.add(toolbar)
toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_NEW)
toolbar.add(toolbutton)
window.show_all()
Gtk.main()
Run Code Online (Sandbox Code Playgroud)

我得到一个这样的窗口: 在此处输入图片说明 工具栏没有暗色调。

EDIT2:尽管 j-johan-edwards 的“带有特殊上下文的工具栏”答案在大多数程序中都是正确的,但在 ubuntuone 控制面板中却并非如此。这个程序有一个 GtkVBox,它可以包含任何范围的小部件(与工具栏不同)。我仍然无法确定 gtk-theme 如何知道如何绘制窗口的那部分。 在此处输入图片说明

但无论如何:现在一个工具栏对我来说就足够了......

python gtk application-development

22
推荐指数
2
解决办法
2716
查看次数

如何在python中编写Appindicators?

我正在尝试开发一些简单的指标,用于数字锁定/大写锁定和亮度等。我将如何在 python 中创建指标?是否有任何教程可以指导我编写我的第一个 appindicator(例如快速应用程序)?像快速模板一样启动的任何简单解决方案?

indicator python application-development

22
推荐指数
3
解决办法
3480
查看次数

我应该学习哪些编程语言才能成为 Ubuntu 开发人员?

虽然我曾经在一个项目中使用过NetBeans,但我需要学习哪些语言才能成为一名成熟的 Ubuntu 开发人员?

我在 NetBeans(仅限 Java)中的项目是设计一个计算器(相对简单)。此外,我们如何学习制作图像查看器、浏览器等?

此外,某些应用程序的最佳语言是什么?

programming application-development

22
推荐指数
3
解决办法
1万
查看次数

我可以用 Python 为手机应用程序开发 ubuntu 吗?

有谁知道我们是否可以用 Python 为手机开发 ubuntu 应用程序?

PyQT / PySide 似乎也支持 QML。但是我们可以在手机上使用它们吗?

python pyqt application-development pyside ubuntu-touch

21
推荐指数
3
解决办法
8215
查看次数

我可以在没有 PyQt 许可证的情况下出售我的 PyQt4 应用程序吗?

我想出售一个使用 PyQt4 的 Python 应用程序。Qt PyQt 的商业许可证总共花费数千欧元。我需要购买商业许可证吗?

从“打包”的角度考虑这一点,我通过软件中心提供了一个 Ubuntu 包。我的包将“依赖”于现有的 Ubuntu Python 和 PyQt 包,所以我是否需要许可 Ubuntu 正在重新分发的东西,我不是直接的?

相反,如果我确实在我的包中包含了 GPL/LGPL Python 库,我的包是否能够保持非免费?我不能让 GPL 库的源代码可用(如果修改)吗?


如果答案是“您需要商业许可证”,是否有您知道的更便宜的替代方案(例如基于版税的付款而不是前期开发人员费用)?

license qt application-development

21
推荐指数
2
解决办法
3万
查看次数