问题
from PySide.QtCore import *
from PySide.QtGui import *
import sys
import stackwid
class Dialog(QDialog,stackwid.Ui_Dialog):
def __init__(self,parent = None):
super(Dialog,self).__init__(parent)
self.setupUi(self)
self.camButton.clicked.connect(self.set())
def set(self):
self.stackedWidget.setCurrentIndex(1)
app = QApplication(sys.argv)
form = Dialog()
form.show()
app.exec_()
I wanted to connect clicked() signal emitted by camButton(PushButton) to slot which is a function set().This just does not run .
RuntimeError: Failed to connect signal clicked()
回答1:
You don't connect the signal to your set()-function, but to it's return value. You just need to remove the parenthesis, then it should work:
self.camButton.clicked.connect(self.set)
回答2:
Passing extra arguments to slots, this may help you ,good luck!
self.camButton.clicked.connect(lambda: self.set(index))
def set(self, index):
self.stackedWidget.setCurrentIndex(index)
来源:https://stackoverflow.com/questions/13894866/pyside-connection-error-runtimeerror-failed-to-connect-signal-clicked