Python Qt - 如何从另一个线程在表小部件中插入项目?

阿迪亚

我想将 Worker Qthread 中的文本项插入到主线程中的 QTableWidget UI 中?。

我想知道在主线程中创建信号的语法,所以我可以通过信号发送从工作线程插入文本以及行和列

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.myclass2 = myclass2()
        self.myclass2.start()
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))
        self.show()


class myclass2(QThread):
    def __init__(self, parent=None):
        super(myclass2, self).__init__(parent)

    def run(self):
        while True:
            time.sleep(.1)
            print(" in thread \n")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
埃利亚内斯克

您已经知道必须使用信号,现在的问题是:您需要发送什么数据?, 你可以认为你应该发送行、列和文本,所以信号必须发送 2 个完整和一个字符串,然后将其连接到一个插槽并在其中插入它,就好像数据是在主中创建的一样线:

import sys
import time
import random
from PyQt5 import QtCore, QtWidgets


class Example(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        lay = QtWidgets.QVBoxLayout(self)

        self.table = QtWidgets.QTableWidget(10, 10)
        lay.addWidget(self.table)

        self.myclass2 = myclass2()
        self.myclass2.new_signal.connect(self.some_function)
        self.myclass2.start()

    @QtCore.pyqtSlot(int, int, str)
    def some_function(self, r, c, text):
        it = self.table.item(r, c)
        if it:
            it.setText(text)
        else:
            it = QtWidgets.QTableWidgetItem(text)
            self.table.setItem(r, c, it)

class myclass2(QtCore.QThread):
    new_signal = QtCore.pyqtSignal(int, int, str)

    def run(self):
        while True:
            time.sleep(.1)
            r = random.randint(0, 9)
            c = random.randint(0, 9)
            text = "some_text: {}".format(random.randint(0, 9))
            self.new_signal.emit(r, c, text)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    ex = Example()
    ex.showMaximized()
    sys.exit(app.exec_())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Qt中将小部件居中放置在另一个小部件中

来自分类Dev

另一个小部件Qt中的小部件

来自分类Dev

另一个小部件Qt中的小部件

来自分类Dev

QT C ++-如何在另一个类中引用窗口小部件

来自分类Dev

无法从Qt中的另一个窗口小部件访问窗口小部件中的控件

来自分类Dev

如何在Qt中将拖放小部件实现到另一个容器?

来自分类Dev

用类中的项目填充python qt小部件

来自分类Dev

使用Python加入Qt Designer中的另一个窗口

来自分类Dev

如果我在一个函数中创建了小部件,如何使用Python Tkinter在另一个函数中访问它们?

来自分类Dev

我如何在另一个线程Qt中显示MessageBox

来自分类Dev

Qt:如何在状态栏中添加两个小部件(例如QPushButton),一个添加到左侧,另一个添加到右侧?

来自分类Dev

Qt 从单独的线程访问表小部件项目

来自分类Dev

Qt无限循环在另一个线程

来自分类Dev

在Python Qt中访问自定义小部件?

来自分类Dev

如何设置一个插槽来接收Qt中的每个小部件动作

来自分类Dev

Python多线程使用另一个线程中的一个线程的数据

来自分类Dev

如何从另一个线程关闭对话框?Qt

来自分类Dev

Qt中的slot函数是否在另一个线程上运行?

来自分类Dev

Qt问题添加表小部件项目

来自分类Dev

Qt问题添加表小部件项目

来自分类Dev

如何在python中的同一对象中的另一个线程内生成线程?

来自分类Dev

Qt Designer Python Tableview项目

来自分类Dev

如何使用另一个表中的数据更新Python中的Oracle表

来自分类Dev

如何进行dict计算并插入python中的另一个优化dict

来自分类Dev

在另一个中显示 QT UI

来自分类Dev

Qt / C ++-在关闭一个小部件时关闭两个小部件

来自分类Dev

从python中的另一个线程从睡眠中唤醒特定线程

来自分类Dev

从python中的另一个线程从睡眠中唤醒特定线程

来自分类Dev

如何使用QT中另一个插槽中的插槽中的变量

Related 相关文章

  1. 1

    在Qt中将小部件居中放置在另一个小部件中

  2. 2

    另一个小部件Qt中的小部件

  3. 3

    另一个小部件Qt中的小部件

  4. 4

    QT C ++-如何在另一个类中引用窗口小部件

  5. 5

    无法从Qt中的另一个窗口小部件访问窗口小部件中的控件

  6. 6

    如何在Qt中将拖放小部件实现到另一个容器?

  7. 7

    用类中的项目填充python qt小部件

  8. 8

    使用Python加入Qt Designer中的另一个窗口

  9. 9

    如果我在一个函数中创建了小部件,如何使用Python Tkinter在另一个函数中访问它们?

  10. 10

    我如何在另一个线程Qt中显示MessageBox

  11. 11

    Qt:如何在状态栏中添加两个小部件(例如QPushButton),一个添加到左侧,另一个添加到右侧?

  12. 12

    Qt 从单独的线程访问表小部件项目

  13. 13

    Qt无限循环在另一个线程

  14. 14

    在Python Qt中访问自定义小部件?

  15. 15

    如何设置一个插槽来接收Qt中的每个小部件动作

  16. 16

    Python多线程使用另一个线程中的一个线程的数据

  17. 17

    如何从另一个线程关闭对话框?Qt

  18. 18

    Qt中的slot函数是否在另一个线程上运行?

  19. 19

    Qt问题添加表小部件项目

  20. 20

    Qt问题添加表小部件项目

  21. 21

    如何在python中的同一对象中的另一个线程内生成线程?

  22. 22

    Qt Designer Python Tableview项目

  23. 23

    如何使用另一个表中的数据更新Python中的Oracle表

  24. 24

    如何进行dict计算并插入python中的另一个优化dict

  25. 25

    在另一个中显示 QT UI

  26. 26

    Qt / C ++-在关闭一个小部件时关闭两个小部件

  27. 27

    从python中的另一个线程从睡眠中唤醒特定线程

  28. 28

    从python中的另一个线程从睡眠中唤醒特定线程

  29. 29

    如何使用QT中另一个插槽中的插槽中的变量

热门标签

归档