Я написал программу, которая может управлять выводом ШИМ на Raspberry Pi из командной строки, но теперь я хотел бы управлять им с помощью графического интерфейса.
Я проектирую графический интерфейс с использованием PyQt5 для управления выходом ШИМ, я хотел бы получить значение из метки, которое настраивается с помощью шкалы, чтобы затем использовать ее для изменения коэффициента заполнения моего ШИМ-выхода.
Я использую Raspberry Pi 3 Model B +.
Я приложил соответствующий раздел моего кода ниже:
Настройка главного окна - стандартное преобразование пользовательского интерфейса в py, которое происходит при использовании pyuic.
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.dial = QtWidgets.QDial(self.centralwidget)
self.dial.setObjectName("dial")
self.verticalLayout.addWidget(self.dial)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.dial.valueChanged['int'].connect(self.label.setNum)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
Функция, которая пытается извлечь значение из метки и в конечном итоге обновить рабочий цикл.
def ChangeSpeed(self):
self.My_PWM.start(0)
while True:
if 0 < self.ui.label:
self.My_PWM.ChangeDutyCycle(self.ui.label)
elif self.ui.label<0:
self.My_PWM.ChangeDutyCycle(0)
print("Programme Ended")
break
Я получаю ошибку типа: неупорядоченные tyoes int ()
Этот вопрос не просто прямое преобразование, поскольку он не позволяет преобразовать значение QLabel в целое число.
Спасибо!