Форум сайта python.su
Здравствуйте, уважаемые форумчане. Пишу небольшой скрипт, хотелось бы к нему прикруртить ГИП (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, поэтому весь код, расположенный за gtk.main() выполнится только при выхода из этого цикла.
Запускайте задачу по обработке данных из БД в отдельном потоке, а GUI будет в своем потоке.
Офлайн
Офлайн
Всем спасибо.
Проблему решил следующим способом:
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()
Офлайн