QT Designerを使用して、2つのQLineEditを使用してユーザーからの入力を受けました。ユーザーが値を入力した後、Enterボタンをクリックすると、値をdisk_angles関数に渡すためのボタンが必要になります。ボタンをクリックして2つの引数を関数に送信する
ボタンを押して信号を介して2つの文字列を関数に渡すにはどうすればよいですか? は、ここで私は、信号 pass_arguments = SIGNAL((str,),(str,))
への入力としてタプルを渡すことを試みた
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):
私のコードですが、私はまた、new styleを使用することをお勧めします
PyQt5で pass_arguments = SIGNAL((str,),(str,))
TypeError: SIGNAL() takes exactly one argument (2 given)
このエラーをお読みくださいか? 'SIGNAL'は1つの引数をとりますが、2を返しました... – Li357
@Andrew Liはい、タプルとして渡すと、シグナル内に2つの引数を渡すことができます。しかし、私は間違って理解しています。 –
は、pass_arguments = SIGNAL((str、str)) – eyllanesc