다음 코드를 고려하십시오.
Class MainWindow (qtgui.qwidget) : def __init __ (self) : ... self.buttons = [] [3, 4]의 IDX의 경우 : button = qtgui.qpushbutton ( 'button {} auto'.format (idx), self) button.clicked.connect (lambda x = idx : self.button_pushed (x)) self.buttons.append (버튼) main_layout.addwidget (button)
버튼을 클릭하면 3과 4의 예상 값을 수신하는 대신 button_pushed 메소드가 거짓을받습니다. 슬롯에 Lambda 표현식을 사용하는 경우,이 문제를 해결하기 위해 배정 된 값 (이 경우 x = idx와 같은 x = idx와 같은)은이 문제를 해결하기 위해 배출 된 값을 덮어 씁니다. Lambda 표현식은 버튼 상태를 무시하고
button.clicked.connect를 사용해야합니다. self.button_pushed (x))
class MainWindow(QtGui.QWidget): def __init__(self): ... self.buttons = [] for idx in [3, 4]: button = QtGui.QPushButton('Button {} auto'.format(idx), self) button.clicked.connect(lambda x=idx: self.button_pushed(x)) self.buttons.append(button) main_layout.addWidget(button)
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3