Потоки с PyGTK - PullRequest
       5

Потоки с PyGTK

3 голосов
/ 06 декабря 2011

Для начала я должен сказать, что я довольно долго искал эту тему и, вероятно, знаю большинство основных ресурсов.Я пытаюсь использовать это: https://github.com/woodenbrick/gtkPopupNotify, чтобы добавить систему уведомлений в ранее все программы командной строки.К сожалению, обычно это зависает из-за того, что я выполняю много операций сна и т. Д. Я предполагаю, что это сработает, если я смогу установить систему потоков.По сути, все, что я хочу, это сделать уведомление, которое не мешает другим операциям программы, включая другие компоненты PyGTK.Функции для создания этих уведомлений на данный момент выглядят для меня так:

    def showMessage(title, message):
        notifier1 = gtkPopupNotify.NotificationStack(timeout=4)
        notifier1.bg_color = gtk.gdk.Color("black")
        notifier1.fg_color = gtk.gdk.Color("white")
        notifier1.edge_offset_x = 5-27 #-27 for odd bugginess
        notifier1.edge_offset_y = 5
        notifier1.new_popup(title=title, message=message)

Любая помощь будет принята с благодарностью, так как я действительно устала от этой проблемы.

1 Ответ

1 голос
/ 06 декабря 2011

С PyGTK я настоятельно рекомендую вообще избегать потоков.Библиотеки GTK не являются полностью поточно-безопасными , а под Win-32 они вообще не поддерживают потоки.Таким образом, попытка работать с ними заканчивается болью.Вы можете получить действительно хорошие результаты, «подделав» его, используя генераторы Python и метод gobject.idle_add ()

В качестве альтернативы написанию кода самостоятельно, вытакже можно просто использовать Zenity , программу Gnome для запуска диалогов уведомлений из командной строки.Это должно быть поточно-ориентированным.

import subprocess
subprocess.call(["zenity", "--notification", "--text=You have been notified"])
...