SendingSonGY 发表于 2024-4-5 00:04

pyqt6怎么实现多行文本一行一行的写入并展示

如图,右侧代码中向多行文本框添加文本是在while循环内,左侧是运行结果。
它运行时是while循环结束后,文本才会显示。
但我想要的是,它append一条,左边文本就追加显示出来。
请问怎么写才能做到呢

一闪一闪233 发表于 2024-4-5 00:21

from PyQt6.QtWidgets import QApplication, QMainWindow, QTextEdit, QVBoxLayout, QWidget
from PyQt6.QtCore import QCoreApplication

class MainWindow(QMainWindow):
    def __init__(self):
      super().__init__()

      # 创建多行文本框
      self.text_edit = QTextEdit()

      # 设置窗口的中央部件和布局
      central_widget = QWidget()
      self.setCentralWidget(central_widget)
      layout = QVBoxLayout()
      central_widget.setLayout(layout)
      layout.addWidget(self.text_edit)

      # 模拟的数据生成和文本更新
      self.simulate_data_stream()

    def simulate_data_stream(self):
      for i in range(10):# 假设这是一个获取数据的循环
            line = f'这是第 {i} 行文本\n'
            self.text_edit.append(line)
            QCoreApplication.processEvents()# 强制立即处理挂起的事件

# 创建应用实例和窗口
app = QApplication([])
window = MainWindow()
window.show()

# 运行应用程序的事件循环
app.exec()

zjg121 发表于 2024-4-5 00:22

试试在第46行selft.text.append(content)下面加一行代码,刷新多行文本框。

SendingSonGY 发表于 2024-4-5 19:51

zjg121 发表于 2024-4-5 00:22
试试在第46行selft.text.append(content)下面加一行代码,刷新多行文本框。

试过的,不行:'(weeqw

zjg121 发表于 2024-4-5 19:56

SendingSonGY 发表于 2024-4-5 19:51
试过的,不行

self.text_edit.insertPlainText(text)   看看这个代码怎么用

SendingSonGY 发表于 2024-4-5 20:03

zjg121 发表于 2024-4-5 19:56
self.text_edit.insertPlainText(text)   看看这个代码怎么用

这个我也试过的,不行,问题已经解决,一楼大哥的代码帮我解决的

SendingSonGY 发表于 2024-4-5 20:05

一闪一闪233 发表于 2024-4-5 00:21
from PyQt6.QtWidgets import QApplication, QMainWindow, QTextEdit, QVBoxLayo ...

谢谢老哥,解决了,太感谢了老哥

zjg121 发表于 2024-4-5 20:07

我还没有用到这些用界面的程序。觉得有界面挺高级的。

SendingSonGY 发表于 2024-4-5 20:23

zjg121 发表于 2024-4-5 20:07
我还没有用到这些用界面的程序。觉得有界面挺高级的。

我也是学着玩的,多个技术栈也不错
页: [1]
查看完整版本: pyqt6怎么实现多行文本一行一行的写入并展示