pyqt 多线程 表格添加数据 代码实现
时间: 2023-10-18 19:13:19 浏览: 84
您好,关于 PyQt多线程表格添加数据的代码实现,您可以参考以下代码示例:
```
import sys
import time
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QThread, pyqtSignal, Qt
class Worker(QThread):
signal = pyqtSignal(tuple)
def __init__(self):
super(Worker, self).__init__()
def run(self):
for i in range(1, 11):
self.signal.emit((i, "data_" + str(i)))
time.sleep(1)
class Table(QWidget):
def __init__(self):
super(Table, self).__init__()
self.table = QTableWidget(self)
self.table.setColumnCount(2)
self.table.setHorizontalHeaderLabels(["编号", "数据"])
layout = QVBoxLayout(self)
layout.addWidget(self.table)
self.setLayout(layout)
self.worker = Worker()
self.worker.signal.connect(self.add_data)
self.worker.start()
def add_data(self, data):
row = self.table.rowCount()
self.table.setRowCount(row + 1)
item1 = QTableWidgetItem(str(data[0]))
item1.setTextAlignment(Qt.AlignHCenter)
item2 = QTableWidgetItem(str(data[1]))
item2.setTextAlignment(Qt.AlignHCenter)
self.table.setItem(row, 0, item1)
self.table.setItem(row, 1, item2)
app = QApplication(sys.argv)
table = Table()
table.show()
sys.exit(app.exec_())
```
这个例子中,我们创建了一个基于 PyQt 的表格,然后开启了一个线程,在线程中不断向表格添加数据。当数据添加完成后,我们使用信号(signal)向主线程发送消息,然后在主线程中更新表格。
希望这个例子可以帮到您,如果您有任何问题,请随时联系我。
阅读全文