gpt4 book ai didi

Thread 中的 Python GTK 窗口

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:09 28 4
gpt4 key购买 nike

我有一个 CLI 应用程序,它正在挖掘一些数据,在需要时启动一个线程,该线程创建带有一些信息的 GTK 窗口。然而,CLI(主线程)仍在后台分析数据,因此可能会创建多个窗口。万一我关闭了窗口,销毁事件实际上被触发了,我在 CLI 中得到了一条调试线,但是窗口被锁定了。

我必须使用一些神奇的命令?

我在主线程中创建这样的窗口:

    gtk.gdk.threads_init()
notifyWindow = NotifyWindow()
notifyWindow.start()

这是 NotifyWindow(Thread).destroy

def destroy(self, widget, data=None):
print "destroy signal occurred"
gtk.main_quit()

这是 NotifyWindow(Thread).run

def run(self):

self.window = gtk.glade.XML( "hadinfo.glade" )

self.window_main = self.window.get_widget("window_main")

if (self.window_main):
self.window_main.connect("destroy", self.destroy)
self.window_main.connect("delete_event", self.delete_event)

self.button_cancel = self.window.get_widget("button_cancel")
self.button_cancel.connect("clicked", self.destroy)

self.window.get_widget("window_main").show()

gtk.main()

最佳答案

使用 gtk.threads_enter() 并保留您的主调用应该会有所帮助。

查看 PyGtk 常见问题解答:PyGtk FAQ

关于Thread 中的 Python GTK 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6212171/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com