Ответы пользователя по тегу PyQt
  • Как подружить sqlite и pyqt5?

    @MasterCard000
    Если я не ошибаюсь. Вы не можете в отдельном потоке менять значения. Вам надо делать сигналы на изменения в основном потоке.

    Попробуйте сигналами управлять, ниже код предоставил для визуального понимания, как работает сигнал.

    from PyQt5 import QtCore, QtGui, QtWidgets
    import sys
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(406, 240)
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.label = QtWidgets.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(50, 40, 251, 41))
            self.label.setObjectName("label")
            MainWindow.setCentralWidget(self.centralwidget)
            self.statusbar = QtWidgets.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
            self.label.setText(_translate("MainWindow", "TextLabel"))
    
    class bb():
        def __init__(self, signal):
            signal.emit("Я здесь что то поменял\n и отправил в основной поток")
    
    class main(QtWidgets.QMainWindow, Ui_MainWindow):
        signal = QtCore.pyqtSignal(str)
        def __init__(self, parent=None):
            super().__init__()
            QtWidgets.QMainWindow.__init__(self)
            self.setupUi(self)
            self.signal.connect(self.text, QtCore.Qt.QueuedConnection)
            bb(self.signal)
        def text(self, text):
            self.label.setText(text)
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        MainWindow = main()
        MainWindow.show()
        sys.exit(app.exec_())
    Ответ написан
    Комментировать