S
If your permanent function does not freeze the interface, that is, its actions don't take much time, you'll have enough. QTimerwhich provide repetitive and one-time timers.Otherwise, you have to put it in an additionally created flow and from there by signals and elephants to interact with the main interface.import sys
#import time
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
#import design
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(847, 563)
MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(10, 30, 101, 31))
self.lcdNumber.setObjectName("lcdNumber")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 10, 101, 21))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(160, 10, 241, 21))
self.label_2.setObjectName("label_2")
self.lcdNumber_3 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_3.setGeometry(QtCore.QRect(160, 30, 231, 31))
self.lcdNumber_3.setObjectName("lcdNumber_3")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(440, 10, 181, 19))
self.label_3.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.label_3.setObjectName("label_3")
self.lcdNumber_4 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_4.setGeometry(QtCore.QRect(440, 30, 171, 31))
self.lcdNumber_4.setObjectName("lcdNumber_4")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(700, 10, 71, 19))
self.label_4.setObjectName("label_4")
self.lcdNumber_5 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_5.setGeometry(QtCore.QRect(700, 30, 64, 31))
self.lcdNumber_5.setObjectName("lcdNumber_5")
self.verticalSlider = QtWidgets.QSlider(self.centralwidget)
self.verticalSlider.setGeometry(QtCore.QRect(60, 100, 40, 395))
self.verticalSlider.setOrientation(QtCore.Qt.Vertical)
self.verticalSlider.setObjectName("verticalSlider")
self.verticalSlider_2 = QtWidgets.QSlider(self.centralwidget)
self.verticalSlider_2.setGeometry(QtCore.QRect(150, 100, 40, 395))
self.verticalSlider_2.setOrientation(QtCore.Qt.Vertical)
self.verticalSlider_2.setObjectName("verticalSlider_2")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(70, 510, 16, 19))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(160, 510, 21, 19))
self.label_6.setObjectName("label_6")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(360, 90, 441, 91))
self.pushButton.setAutoFillBackground(True)
self.pushButton.setAutoDefault(False)
self.pushButton.setObjectName("pushButton")
self.horizontalSlider = QtWidgets.QSlider(self.centralwidget)
self.horizontalSlider.setGeometry(QtCore.QRect(360, 470, 451, 31))
self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
self.horizontalSlider.setObjectName("horizontalSlider")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(360, 440, 111, 19))
self.label_7.setObjectName("label_7")
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setGeometry(QtCore.QRect(740, 500, 67, 19))
self.label_8.setObjectName("label_8")
self.lcdNumber_2 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_2.setGeometry(QtCore.QRect(410, 230, 111, 41))
self.lcdNumber_2.setObjectName("lcdNumber_2")
self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_9.setGeometry(QtCore.QRect(430, 200, 67, 19))
self.label_9.setObjectName("label_9")
self.label_10 = QtWidgets.QLabel(self.centralwidget)
self.label_10.setGeometry(QtCore.QRect(660, 200, 67, 19))
self.label_10.setObjectName("label_10")
self.lcdNumber_6 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_6.setGeometry(QtCore.QRect(630, 230, 111, 41))
self.lcdNumber_6.setObjectName("lcdNumber_6")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(360, 300, 201, 41))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(590, 300, 211, 41))
self.pushButton_3.setObjectName("pushButton_3")
self.label_11 = QtWidgets.QLabel(self.centralwidget)
self.label_11.setGeometry(QtCore.QRect(70, 80, 31, 19))
self.label_11.setObjectName("label_11")
self.label_12 = QtWidgets.QLabel(self.centralwidget)
self.label_12.setGeometry(QtCore.QRect(160, 80, 31, 19))
self.label_12.setObjectName("label_12")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Мій РЕАКТОР"))
self.label.setText(_translate("MainWindow", "ПОТУЖНІСТЬ"))
self.label_2.setText(_translate("MainWindow", "ТЕМПЕРАТУРА АКТИВНОЇ ЗОНИ"))
self.label_3.setText(_translate("MainWindow", "ТЕМПЕРАТУРА ТУРБІНИ"))
self.label_4.setText(_translate("MainWindow", "РАДІАЦІЯ"))
self.label_5.setText(_translate("MainWindow", "С"))
self.label_6.setText(_translate("MainWindow", "Т"))
self.pushButton.setText(_translate("MainWindow", "АВАРІЙНИЙ ЗАХИСТ"))
self.label_7.setText(_translate("MainWindow", "СТАН ПАЛИВА"))
self.label_8.setText(_translate("MainWindow", "100%"))
self.label_9.setText(_translate("MainWindow", "МВт/год"))
self.label_10.setText(_translate("MainWindow", "ГРОШІ"))
self.pushButton_2.setText(_translate("MainWindow", "ЗАМІНА ПАЛИВА"))
self.pushButton_3.setText(_translate("MainWindow", "РЕМОНТ ТУРБІНИ"))
self.label_11.setText(_translate("MainWindow", "0 %"))
self.label_12.setText(_translate("MainWindow", "0 %"))
#class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
def init(self):
super().init()
self.setupUi(self)
self.pushButton.clicked.connect(self.emergency_protection)
self.verticalSlider.valueChanged[int].connect(self.absorber)
self.verticalSlider_2.valueChanged[int].connect(self.turbine)
self.power = 0
self.value_absorder = 0
+++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
self.turbine(33) # !!!
self.date = QDate.currentDate()
font = QFont('Arial', 16, QFont.Bold)
self.statusBar().setFont(font)
timer = QTimer(self) # !!!
timer.timeout.connect(self.funcPower)
timer.start(1000)
+++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
def emergency_protection(self):
print("Запуск АЗ")
def absorber(self, value):
self.value_absorder = value
self.label_11.setText(str(value) + "%")
def turbine(self, value):
self.value_turbine = value
self.label_12.setText(str(value) + "%")
+++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def funcPower(self):
current_time = QTime.currentTime()
label_time = current_time.toString('hh:mm:ss')
self.statusBar().showMessage('Time: ' + label_time + ' || Date: ' \
+ self.date.toString('dd.MM.yyyy'))
+++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if name == 'main':
app = QtWidgets.QApplication(sys.argv)
window = ExampleApp()
window.show()
sys.exit(app.exec_())