【python】来学学debugger吧,不能只会用print调试呀!

count = 0
while (count < 5):
time.sleep(1)
count += 1
message = "check_download_finished {0}".format(count)
print(message)
self.ui_down_info_edit.setText(message)
self.ui_down_info_edit 是一个 QTextEdit()
执行时 print 能实时打印 message,而 self.ui_down_info_edit 退出循环时才会打印 一条消息
如何让 self.ui_down_info_edit 也能实时打印消息
在循环中使用 self.ui_down_info_edit.setText() 方法只是将消息更新到了文本框中,但实际上并没有及时更新界面显示,
所以您在循环结束后才看到了所有消息。
要在循环中及时更新文本框的显示,可以调用 QApplication.processEvents() 方法来处理没有被处理的事件。
这将强制更新 UI 界面,并在处理其他事件(例如界面的绘制或响应用户交互)之前执行消息处理。
您可以使用 QTextEdit.verticalScrollBar() 方法将文本框滚动到最底部,
以便用户查看最新的消息
self.ui_down_info_edit.append(message)
self.ui_down_info_edit.verticalScrollBar().setValue(
self.ui_down_info_edit.verticalScrollBar().maximum())
QApplication.processEvents()
获取垂直滚动条,并将其设置为最大值,以滚动文本框到底部。
chatGpt牛皮