QT 디자이너를 사용하여 두 개의 QLineEdit을 사용하여 사용자로부터 입력을받습니다. 사용자가 값을 입력 한 후에 Enter 버튼을 클릭하면 버튼이 disk_angles 함수에 값을 전달해야합니다.버튼을 클릭하여 두 개의 인수를 함수에 보내려면
버튼을 눌러 신호를 통해 두 개의 문자열을 함수에 전달하는 방법은 무엇입니까? 는 여기에 내가 신호 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 네, 그렇습니다. 튜플로 넘겨 주면 두 개의 인수를 신호로 전달할 수 있다고 읽었습니다. 하지만 난 그걸 잘못 이해했습니다. –
시도 pass_arguments = SIGNAL ((str, str)) – eyllanesc