在Ubuntu 12.04下运行GTK +应用程序时,如何设置应用程序级菜单中显示的应用程序名称?
以下是一个示例应用:
from gi.repository import GLib, Gtk, Gio
import sys
class MyApp(object):
def __init__(self):
GLib.set_application_name('My App')
self.app = Gtk.Application.new('org.example.test', 0)
self.app.connect('startup', self.on_app_startup)
self.app.connect('activate', self.on_app_activate)
self.app.connect('shutdown', self.on_app_shutdown)
def run(self, argv):
self.app.run(argv)
def on_app_startup(self, app):
self.window = Gtk.ApplicationWindow.new(app)
self.window.set_default_size(640, 480)
self.window.set_title('AppMenu Demo')
app.add_window(self.window)
# # App menu
app_menu = Gio.Menu()
section = Gio.Menu()
item = Gio.MenuItem.new('Quit', 'app.quit')
item.set_attribute_value("accel", GLib.Variant("s", "<Control>Q"))
section.append_item(item)
app_menu.append_section(None, section)
app.set_app_menu(app_menu)
# # Menu bar
menu_bar = Gio.Menu()
submenu = Gio.Menu()
section = Gio.Menu()
section.append_item(Gio.MenuItem.new('Help', 'app.help'))
submenu.append_section(None, section)
menu_bar.append_submenu('Help', submenu)
app.set_menubar(menu_bar)
action = Gio.SimpleAction.new('quit', None)
action.connect('activate', self.on_quit)
app.add_action(action)
def on_app_activate(self, app):
self.window.show_all()
def on_app_shutdown(self, app):
pass
def on_quit(self, action, data=None):
self.app.quit()
if __name__ == '__main__':
app = MyApp()
app.run(sys.argv)
如果你在Ubuntu 12.04下运行这个代码,它会弹出一个标有&#34; AppMenu Demo&#34 ;;的窗口。屏幕顶部的控制栏也显示此名称。如果将鼠标移动到控制栏,则会显示两个下拉菜单;应用程序菜单和&#34;帮助&#34;菜单。
这很好 - 除了应用程序菜单的名称是&#34;未知的应用程序名称&#34;。我无法找到改变这个名字的方法。 GLib.set_application_name(name)
没有做到。如何设置应用程序名称?
或者:这是一个GTK +领先于Ubuntu支持的情况吗?谷歌搜索&#34;未知的应用程序名称&#34;指向一系列错误报告和合并补丁,这表明这可能是当前开发的一个领域,而不是稳定的API。对Ubuntu中安装的应用程序的快速调查显示,大多数应用程序都有一个&#34;文件&#34;菜单,但没有什么可以被识别为&#34; app&#34; GTK +似乎支持的类型的菜单。我是否应该放弃应用程序菜单,直到它们在操作系统级别得到更好的支持?
答案 0 :(得分:0)
这是一个ubuntu特定/统一特定/古代gtk+ 3.4.x
/ gtk+ 3.6.x
错误。
有些当前(gtk+ 3.10.7
和Cinnamon 2.014
作为DE)它的工作正常。