Доброго времени суток, уважаемые. Новичок в программировании, ваяю программку для опроса стороннего устройства по modbus tcp на python 3, надеюсь на помощь.
Возникла следующая проблема: мне нужно обновлять значение QTextEdit (text_03), пока нажат (while) checkBox_02, пытаюсь в text_03 выводить переменную, которая периодически изменяет свое значение. НО при старте функции - виснет приложение, цикл начинает обрабатывать первоначальное значение переменной, но когда переменная меняет своё значение - то QTextEdit виснет и не выводит далее ничего. Пробую стирать QTextEdit и ставить/не ставить time.sleep - не помогает.
Python
import sys
import time, sched, gettext
from app_mb_original import read, write_block, write_unclock
from try228 import *
from app_define_bits import define_bits, recoding_status
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.timer = QTimer()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.checkBox_02.clicked.connect(self.call_checkbox_02)
def call_read(self):
x = int(self.ui.text_01.toPlainText())
y = int(self.ui.text_02.toPlainText())
a = read(reg_add=x, reg_nb=y)
d = define_bits(n=a[1])
f = recoding_status(mnm=d)
self.ui.text_03.setText(f)
self.ui.text_03.repaint()
time.sleep(2)
self.ui.text_03.clear()
self.ui.text_03.repaint()
def call_checkbox_02(self):
while self.ui.checkBox_02.isChecked():
self.call_read()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())