@KPEBETKA

Python + Gtk. Как останавливать код, когда не открыто меню?

Решил наваять простенькое приложение, которое бутет висеть в трее и при нажатии на иконку показывать меню с необходимой инфой. Но столкнулся с проблемой...
  • Функция add_item выполняется даже в том случае, когда меню закрыто. Для экономии энергии хочется, чтобы вышеуказанная функция выполнялась только в том случае, если открыто меню
import pygtk, gtk, appindicator, glib

def add_item(ind):
	menu = gtk.Menu()
	item = gtk.MenuItem('%s' % time.time())
	menu.append(item)
	separator = gtk.SeparatorMenuItem()
	menu.append(separator)
	item = gtk.MenuItem("Settings")
	item.connect("activate", settings)
	menu.append(item)
	item = gtk.ImageMenuItem(gtk.STOCK_QUIT)
	item.connect("activate", quit)
	menu.append(item)
	menu.show_all()
	ind.set_menu(menu)
	return True

def settings(widget, data=None):
	print >> sys.stderr, 'settings'

def quit(widget, data=None):
	gtk.main_quit()


if __name__ == "__main__":
	ind = appindicator.Indicator ("totp-indicator", "indicator-totp", appindicator.CATEGORY_APPLICATION_STATUS)
	ind.set_status (appindicator.STATUS_ACTIVE)
	ind.set_attention_icon ("indicator-messages-new")
	ind.set_icon("gtk-dialog-authentication-panel")
	glib.timeout_add(1000,  add_item, ind)
	gtk.main()
  • Вопрос задан
  • 2493 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vitosua
Учу C# and WPF
KPEBETKA а если разделить на 2 потока? Один выполняется всегда, а второй, с меню, запускается только при клике на иконку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы