Я разрабатываю приложение на python и оно будет использоваться в Windows MacOsX и Linux, и теперь я разрабатываю значок системы (значок состояния) (и меню, когда вы нажимаете) в панели Mac OSX. Могу ли я использовать PyGTK в окнах, mac и linux и использовать тот же код для отображения статуса статуса в строке состояния (macosx), в системном трее (windows) или linux?Значок состояния в GTK + на MacOSX, Windows и Linux (Gnome) и python
Заранее спасибо. Это код:
import gtk
class SystrayIconApp:
def __init__(self):
self.tray = gtk.StatusIcon()
self.tray.set_from_stock(gtk.STOCK_ABOUT)
self.tray.connect('popup-menu', self.on_right_click)
self.tray.set_tooltip(('Sample tray app'))
def on_right_click(self, icon, event_button, event_time):
self.make_menu(event_button, event_time)
def make_menu(self, event_button, event_time):
menu = gtk.Menu()
# show about dialog
about = gtk.MenuItem("About")
about.show()
menu.append(about)
about.connect('activate', self.show_about_dialog)
# add quit item
quit = gtk.MenuItem("Quit")
quit.show()
menu.append(quit)
quit.connect('activate', gtk.main_quit)
menu.popup(None, None, gtk.status_icon_position_menu,
event_button, event_time, self.tray)
def show_about_dialog(self, widget):
about_dialog = gtk.AboutDialog()
about_dialog.set_destroy_with_parent (True)
about_dialog.set_icon_name ("SystrayIcon")
about_dialog.set_name('SystrayIcon')
about_dialog.set_version('0.1')
about_dialog.set_copyright("(C) 2010 João Pinto")
about_dialog.set_comments(("Program to demonstrate a system tray icon"))
about_dialog.set_authors(['João Pinto <[email protected]>'])
about_dialog.run()
about_dialog.destroy()
if __name__ == "__main__":
SystrayIconApp()
gtk.main()
Это де лоток в MAC OS X (звезда с GTK +):
Это лоток в WINDOWS (звезда с GTK +):
на окнах нет проблем, меню не отображается при нажатии на иконку, но в Mac OX, ICOS является s но меню не отображается.
В чем проблема с кодом?
Что вы подразумеваете под "значком строки состояния"? Значки, отображаемые в лотке системы в Windows? Поскольку это поведение существует только в Windows, у вас больше нет значков в лотке системы в Gnome (3.4+). Может быть, вы говорите о значке приложения? – halflings
Значок звездочки на верхних изображениях – ManuParra
Эй, вы нашли решение? Для добавления значка индикатора в OSX с использованием Python Gtk (или PyGObject/Gtk + 3). –