Уведомления

Группа в Telegram: @pythonsu

#1 Июль 15, 2024 17:24:07

python_alex
Зарегистрирован: 2024-07-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Потоки и вставка виджета

Добрый день!
Столкнулся с такой проблемой, через поток не хочет вставляться виджет (кнопка) в таблицу ListGrease. Помогите решить этот вопрос, спасибо!

 from form_main import Ui_MainWindow
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtWidgets import (
    QApplication, QMainWindow, QTableWidgetItem
)
import sys
import time
import threading
class Window_main_form(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.pushButton.clicked.connect(self.potok1)
        self.pushButton_2.clicked.connect(self.potok2)
    def Timer(self):
        st = 0
        while True:
            time.sleep(0.3)
            win_main_form.lineEdit.setText(str(st))
            st += 1
    def potok1(self):
        thread = threading.Thread(target=self.Timer, daemon=True)
        thread.start()
    def potok2(self):
        thread = threading.Thread(target=self.potok2_2, daemon=True)
        thread.start()
    def potok2_2(self):
        self.ListGrease.setColumnCount(2)
        self.ListGrease.setRowCount(0)
        self.ListGrease.setHorizontalHeaderLabels(["-", "Дата"])
        self.ListGrease.resizeColumnsToContents()
        self.ListGrease.resizeColumnsToContents()
        self.ListGrease.setRowCount(self.ListGrease.rowCount() + 1)
        self.ListGrease.setRowCount(self.ListGrease.rowCount() + 1)
        self.ListGrease.setItem(0, 1, QTableWidgetItem(str("Текст")))
        pushButton = QtWidgets.QPushButton('X')
        pushButton.setMaximumSize(QtCore.QSize(35, 25))
        pushButton.clicked.connect(self.clik)
        self.ListGrease.setCellWidget(1, 0, QTableWidgetItem(pushButton)) # вот здесь ошибка
    def clik(self):
        print("Клик!")
if __name__ == '__main__':
    app = QApplication(sys.argv)
    win_main_form = Window_main_form()
    win_main_form.show()
    sys.exit(app.exec())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version