- python 3.2.2
- gtk3 3.2.2
- python-gobject 3.0.2
Tôi đang cố gắng để hiển thị một GUI và làm một số công việc trong nền. Vì tôi hiểu nó nên trông giống như sau:Python. Làm một số công việc trên nền với Gtk GUI
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
from threading import Thread
from gi.repository import Gtk, Gdk
class Gui():
def run(self):
self.Window = Gtk.Window()
self.Window.set_border_width(8)
self.Window.set_title("Некий GUI")
self.Window.connect('destroy', lambda x: self.stop())
self.outBut = Gtk.Button.new_from_stock(Gtk.STOCK_OK)
self.outBut.set_size_request(150, 35)
self.outBut.connect('clicked', lambda x: self.passfun)
self.Window.add(self.outBut)
self.Window.show_all()
def stop(self):
Gtk.main_quit()
def passfun(self):
pass
class LoopSleep(Thread):
def run(self):
i = 1
while True:
print(i)
i = i + 1
#time.sleep(1)
gui = Gui()
gui.run()
loopSleep = LoopSleep()
loopSleep.start()
Gdk.threads_init()
Gdk.threads_enter()
Gtk.main()
Gdk.threads_leave()
Nhưng nó không hoạt động. Một số chu kỳ xảy ra khi bạn nhấn nút. Và chu trình chạy sau khi cửa sổ đóng lại. Nhưng không phải với nhau.
Tôi làm gì sai?
Bạn nên bao gồm mã với câu hỏi của mình. –
Tôi sử dụng pastebin, vì tôi không thể hiểu cách dán mã công việc tại đây. – Atterratio
Bạn dán nó vào, chọn nó và nhấn nút mã trong trình chỉnh sửa. –