gpt4 book ai didi

python - 如何动态更新QTextEdit

转载 作者:行者123 更新时间:2023-11-28 19:55:42 24 4
gpt4 key购买 nike

所以我在我的 GUI 的主窗口中有一个 QTextEdit。我想通过从远程更新列表中提取来实时更新其中的文本。我不知道如何无限检查这个列表,而不是 a) 执行无限循环或 b) 线程。

a) 使 GUI 崩溃,因为它是一个无限循环b) 产生一个错误说:

QObject: Cannot create children for a parent that is in a different thread.

我明白了。

我该怎么做才能解决这个问题?

最佳答案

这就是它在没有线程的情况下的工作方式:)

1) 创建pyqt textEditor logView:

self.logView = QtGui.QTextEdit()

2)将pyqt texteditor添加到布局:

layout = QtGui.QGridLayout()
layout.addWidget(self.logView,-ROW NUMBER-,-COLUMN NUMBER-)
self.setLayout(layout)

3) 神奇的功能是:

def refresh_text_box(self,MYSTRING): 
self.logView.append('started appending %s' % MYSTRING) #append string
QtGui.QApplication.processEvents() #update gui for pyqt

在你的循环中调用上面的函数或者将连接的结果字符串直接传递给上面的函数,如下所示:

self.setLayout(layout)
self.setGeometry(400, 100, 100, 400)
QtGui.QApplication.processEvents()#update gui so that pyqt app loop completes and displays frame to user
while(True):
refresh_text_box(MYSTRING)#MY_FUNCTION_CALL
MY_LOGIC
#then your gui loop
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
dialog = MAIN_FUNCTION()
sys.exit(dialog.exec_())

关于python - 如何动态更新QTextEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24371274/

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