2012-12-15 4 views
3
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_() 

Я хотел подключить Clicked() сигнал, излучаемый camButton (КНОПКА) слот, который является функцией множества() Это просто не работает..PySide соединения Ошибка «RuntimeError: Не удалось подключиться сигнал щелкнул()»

RuntimeError: Failed to connect signal clicked() 

ответ

10

Вы не подключайте сигнал к set() -функции, но это возвращаемое значение. Вам просто нужно снять скобку, то он должен работать:

self.camButton.clicked.connect(self.set) 
+0

Thanx, которая работала ... Но мне нужно передать дополнительный аргумент, нет, чтобы установить в заданный метод. def установка (сам, нет): self.stackedWidget.setCurrentIndex (no) Как это сделать? Не следует использовать, self.camButton.clicked.connect (self.set (no)) – vjdhama

+1

['clicked'-Signal] (http://qt-project.org/doc/qt/qabstractbutton.html# нажата) кнопки испускается только с одним логическим аргументом 'checked'. Если вы хотите передать еще один параметр в свой слот (функции в этом случае), вам нужно определить свой собственный сигнал и испустить его при нажатии кнопки. – mata

4

Передача дополнительных аргументов в слотах, это может помочь вам, удачи!

self.camButton.clicked.connect(lambda: self.set(index)) 

def set(self, index): 

    self.stackedWidget.setCurrentIndex(index)