pyside connection Error “RuntimeError: Failed to connect signal clicked()”

六月ゝ 毕业季﹏ 提交于 2019-11-27 06:25:19

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!