Найти - Пользователи
Полная версия: PyGTK+потоки
Начало » Python для новичков » PyGTK+потоки
1
FONTER
Здравствуйте, уважаемые форумчане. Пишу небольшой скрипт, хотелось бы к нему прикруртить ГИП (GUI), но возникают проблемы. Например, есть код:
...
...
gui = Gui()
database = DataBase()
tmp1 = 1
tmp3 = 0
while 1:
tmp2 = database.results() # Делаем запрос в db
if tmp1 != tmp2:
gui.start()
gtk.main()
tmp1 = tmp2
tmp3 += 1
print tmp3
...
...
Как заставить gtk.main() не тормозить программу? Мой код полностью работает, но к сожалению, gtk.main() останавливает его до закрытия окна.
Заранее спасибо!
plastun
gtk.main() запускает цикл обработки событий GTK, поэтому весь код, расположенный за gtk.main() выполнится только при выхода из этого цикла.
Запускайте задачу по обработке данных из БД в отдельном потоке, а GUI будет в своем потоке.
slav0nic
http://faq.pygtk.org/index.py?file=faq20.006.htp&req=show
глянь
FONTER
Всем спасибо.
Проблему решил следующим способом:
def call_main_loop():
gtk.gdk.threads_init()
gtk.gdk.threads_enter()
gtk.main()
gtk.gdk.threads_leave()


gui = Gui()
database = DataBase()

gui_thread = threading.Thread(target=call_main_loop, name="t1")
gui_thread.start()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB