欢迎光临散文网 会员登陆 & 注册

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

2023-04-08 16:37 作者:麻瓜藤9527  | 我要投稿

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牛皮


【python】来学学debugger吧,不能只会用print调试呀!的评论 (共 条)

分享到微博请遵守国家法律