Я использовал QT Designer, чтобы иметь два QLineEdit для ввода ввода от пользователя. После ввода пользователем значений, когда нажата кнопка Enter, мне нужны кнопки для передачи значений функции disk_angles.Чтобы отправить два аргумента функции одним нажатием кнопки
Как передать две строки функции через сигналы одним нажатием кнопки? Вот мой код
class Maindialog(QMainWindow,diskgui.Ui_MainWindow):
pass_arguments = SIGNAL((str,),(str,))
def __init__(self,parent = None):
super(Maindialog,self).__init__(parent)
self.setupUi(self)
self.connect(self.Home,SIGNAL("clicked()"),self.home_commands)
self.connect(self.AutoFocus,SIGNAL("clicked()"),self.auto_focus)
self.Enter.clicked.connect(self.entervalues)
self.connect(self,SIGNAL("pass arguments"),self.Criterion_disk_angles)
def entervalues(self):
if self.RotationEdit.text() != "" and self.TiltEdit.text() != "":
self.RotationEdit = str(self.RotationEdit.text())
self.TiltEdit = str(self.TiltEdit.text())
self.pass_arguments.emit(self.RotationEdit,self.TiltEdit)
def disk_angles(self,rotation_angle, tilt_angle):
Я попытался передать кортежи в качестве входных данных для сигнала pass_arguments = SIGNAL((str,),(str,))
, но я получаю ошибку
pass_arguments = SIGNAL((str,),(str,))
TypeError: SIGNAL() takes exactly one argument (2 given)
Вы прочитали ошибку? 'SIGNAL' принимает 1 аргумент, но вы предоставили 2 ... – Li357
@ Andrew Li Да, но я читал, что вы можете передать два аргумента в сигнале, если передать его как кортеж. Но я не знаю, что это неправильно –
попробуйте с pass_arguments = SIGNAL ((str, str)) – eyllanesc