gpt4 book ai didi

python - 如何从 PyQt 中的另一个线程访问 GUI 元素

转载 作者:太空狗 更新时间:2023-10-30 02:21:19 27 4
gpt4 key购买 nike

我正在尝试创建一个客户端-服务器应用程序,当服务器关闭时,我希望客户端 GUI 关闭,它正在另一个线程上运行。我想访问 GUI 并关闭,但出现 X 错误:

Bad implementation(...).

我该如何解决这个问题?

最佳答案

您可以做的是在第一个线程关闭时发出自定义信号..

from PyQt4 import QtGui as gui
from PyQt4 import QtCore as core

import sys
import time


class ServerThread(core.QThread):
def __init__(self, parent=None):
core.QThread.__init__(self)

def start_server(self):
for i in range(1,6):
time.sleep(1)
self.emit(core.SIGNAL("dosomething(QString)"), str(i))

def run(self):
self.start_server()


class MainApp(gui.QWidget):
def __init__(self, parent=None):
super(MainApp,self).__init__(parent)

self.label = gui.QLabel("hello world!!")

layout = gui.QHBoxLayout(self)
layout.addWidget(self.label)

self.thread = ServerThread()
self.thread.start()

self.connect(self.thread, core.SIGNAL("dosomething(QString)"), self.doing)

def doing(self, i):
self.label.setText(i)
if i == "5":
self.destroy(self, destroyWindow =True, destroySubWindows = True)
sys.exit()


app = gui.QApplication(sys.argv)
form = MainApp()
form.show()
app.exec_()

关于python - 如何从 PyQt 中的另一个线程访问 GUI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919472/

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