python - 如何在 Gnome Shell 中设置应用程序标题?

标签 python gtk gnome-3

我是 Gtk+ 开发的新手,正在尝试使用 PyGObject 和 Gtk+3.0 编写应用程序。但是,当我从命令行在 Gnome Shell 中运行我的应用程序时,显示在左上角(紧靠“事件”热角右侧)的应用程序名称仅设置为 Python 源文件的名称我跑去启动应用程序。有什么方法可以为我的应用程序设置名称以显示在 Gnome Shell 中吗?我看过 Gtk.Application,虽然它似乎做了一些我想做的事情(无论如何从 Gtk+3.3 开始),但我似乎无法弄清楚如何修复事件名称或应用程序名称。

最佳答案

gnome-shell 尝试将窗口与应用程序(ShellApp 实例)匹配并使用该名称。代码在这里:http://git.gnome.org/browse/gnome-shell/tree/src/shell-window-tracker.c#n328

但是,如果它找不到窗口的 ShellApp,那么它会回退到使用 ICCCM 指定的 WM_CLASS(规范位于 http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5)这里:http://git.gnome.org/browse/gnome-shell/tree/src/shell-app.c#n361

因此,如果您没有为其安装 .desktop 文件以从中查找应用程序名称,您将在其中获得默认的 WM_CLASS。 GTK 根据可执行文件名自动生成。您可以使用 gtk_window_set_wmclass()

在实现窗口之前覆盖它(这意味着在调用窗口上的 _show 之前)

这是一个简单的示例,将显示为“Hello World”。不要忘记设置窗口标题!

#!/usr/bin/python
from gi.repository import Gtk

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_wmclass ("Hello World", "Hello World")
win.set_title ("Hello World")
win.show_all()
Gtk.main()

关于python - 如何在 Gnome Shell 中设置应用程序标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9324163/

相关文章:

python - Pandas 错误 "AttributeError: ' DataFrame' 对象没有属性 'add_categories'“尝试添加定性值时?

c# - 在 Gtk 中,如何将 TextView 中的文本垂直居中?

ubuntu-18.04 - 如何以编程方式将数据导入 Gnome 联系人?

linux - 如何在 Linux 中为 alt-tab 使用 128x128 图标?

python - 超时重新连接 MySQL

python - 使用二维码验证产品

python - 如何在Python中重新打乱已打乱顺序的列表

c++ - 编译 gobject-introspection-1.44.0 时获取错误列表

c - GdkPixbuf 集合

glade - 如何在 Glade 3.20 中使用 GtkHeaderBar?