Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » gtk.StatusIcon() - проблема с отображением в трее [RSS Feed]

#1 Май 26, 2010 21:54:04

belk_o
От:
Зарегистрирован: 2010-05-23
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.StatusIcon() - проблема с отображением в трее

собственно проблема такая - не отображается иконка в трее, если вот этот код пустить в бесконечном цикле:

command = ['ping -q -c5 213.180.204.3 | tail -n 1    | grep \'rtt\' | cut -c38-39 ']
ping_command = subprocess.Popen( command, shell=True, stderr=subprocess.PIPE)
notok=ping_command.stderr.read()
if notok == "":
tray = gtk.StatusIcon()
tray = gtk.StatusIcon()
icon="icon.xpm"
tray.set_from_file(icon)

else:
tray = gtk.StatusIcon()
icon1="icon2.xpm"
tray.set_from_file(icon1)
По-идее программа должна сидеть в трее, периодически пинговать сервер и менять цвет иконки.
Помогите люди добрые!
А я Вам спасибо скажу :)



Офлайн

#2 Июнь 25, 2010 22:24:39

belk_o
От:
Зарегистрирован: 2010-05-23
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.StatusIcon() - проблема с отображением в трее

ну ладно - раз никто не ответил - сам расскажу - может кому и пригодится :)
решил проблему через применение модуля gobject
функция таймера :

import gobject

и затем в теле программы

def run(self):
код….
gobject.timeout_add(1000, self.run) - повтор выполнения - раз в секунду

Может и некошерно - но работает :)



Отредактировано (Июнь 25, 2010 22:26:15)

Офлайн

#3 Июнь 26, 2010 03:11:53

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

gtk.StatusIcon() - проблема с отображением в трее

Работаете с GTK используйте его внутренний цикл (основан на gobject). Но, если мне не изменяет склероз, цикл можно организовать свой, но передовать gtk/gobject на время управление (не хочу сейчас в справочник по api лезть), хотя это не айс конечно, у gobject вполне прилиный цикл со всем что может понадобиться.

p.s. Не заметил сообщение в своё время, не виноватый я :-).

p.p.s. Задачка на базе gtk любопытная, попробую сегодня сам поколдую, результат выложу. А то умничаю тут разные, скажете :-).

p.p.p.s. С просоня туго соображаю, похоже вы и пришли к тому что бы использовать цикл gtk/gobject и повесили свой обработчик таймерных событий. На троечку так :-).

..bw



Отредактировано (Июнь 26, 2010 03:13:53)

Офлайн

  • Начало
  • » GUI
  • » gtk.StatusIcon() - проблема с отображением в трее[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version