小编xub*_*tix的帖子

如何向 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 程序(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
查看次数

以 ListStore 为首选项快速应用

我开始用“快速”编写程序。所需语言的列表将是一个首选。例子:

languages = ["en", "de"]
Run Code Online (Sandbox Code Playgroud)

处理首选项部分的(自动创建的)快速代码如下所示:

# Define your preferences dictionary in the __init__.main() function.
# The widget names in the PreferencesTestProjectDialog.ui
# file need to correspond to the keys in the preferences dictionary.
#
# Each preference also need to be defined in the 'widget_methods' map below
# to show up in the dialog itself.  Provide three bits of information:
#  1) The first entry is the method on the widget that grabs a value from the
#     widget. …
Run Code Online (Sandbox Code Playgroud)

python gtk quickly application-development

10
推荐指数
1
解决办法
749
查看次数

如何在 QML 拖放示例中发出 onDropped?

在 qml 文档中有一个拖放示例

import QtQuick 2.0

Item {
    width: 200; height: 200

    DropArea {
        x: 75; y: 75
        width: 50; height: 50

        onDropped: console.log("dropped")
        onEntered: console.log("entered")

        Rectangle {
            anchors.fill: parent
            color: "green"

            visible: parent.containsDrag
        }
    }

    Rectangle {
        x: 10; y: 10
        width: 20; height: 20
        color: "red"

        Drag.active: dragArea.drag.active
        Drag.hotSpot.x: 10
        Drag.hotSpot.y: 10

        MouseArea {
            id: dragArea
            anchors.fill: parent

            drag.target: parent
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我用“onDropped”和“onEntered”添加了两行。虽然通过拖动小矩形触发“onEntered”,但我无法使“onDropped”触发。

我该怎么做才能触发它?

qt application-development qml

9
推荐指数
1
解决办法
6038
查看次数

gedit 中的每个文件类型首选项

我正在尝试将 gedit 用于两个不同的任务:开发 Python 软件和编写 Latex 文档。两者都基于纯文本文件,但它们非常不同:例如,Python 代码需要对齐才能看到代码的结构(循环、函数等)。因此,等宽字体是一件好事。对于编写 Latex 文档,我主要需要可读性。这最好使用用于打印的字体来实现,绝对不是等宽字体。

有没有办法告诉 gedit 使用每个文件类型的首选项?例如 *.tex 的 Garamond 和 *.py 的 Monospace?(但这个问题不仅限于字体,也不限于 Latex 和 Python)。

gedit preferences

6
推荐指数
1
解决办法
621
查看次数

如何重置包描述的语言

大约一年前,我将德语作为我的主要语言。后来我把它改成了英文。系统的大部分部分接受了更改。

值得注意的例外是软件包描述,某些软件包仍保留德语版本。

您可以在图像(apt-cache 和软件中心)中看到,虽然一些描述是英语,但有些仍然是德语。所以问题是:我该如何重置?我猜想某个地方有一个描述缓存需要被告知它应该更新所有描述?

apt-cache 和软件中心的屏幕截图

编辑:按要求:一些语言相关命令的输出:

$ cat /etc/default/locale
LANG="en_US.UTF-8"

$ apt-config dump | grep Lang
Acquire::Languages "";
Acquire::Languages:: "de_DE";
Acquire::Languages:: "de";
Acquire::Languages:: "en";
Acquire::Languages:: "none";

$ locale
LANG=de_DE.UTF-8
LANGUAGE=en
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

请注意:我不确定每个条目的含义,但某些de_DE.UTF-8 可能没问题,因为我确实想要标准德语格式的纸张尺寸、货币、时间等。

package-management language

5
推荐指数
1
解决办法
782
查看次数