2017-07-31 81 views
0

我有一个func想连接所有Qpushbutton,但我不知道如何设置它。Pyqt如何将func连接到ALL Qpushbutton

现在我只使用dict列出所有attr,并过滤Qpushbutton,但我不知道如何设置,连接。

这是我的代码:

def test_fn(self): 
    item_dict = self.__dict__ 
    for key in item_dict: 
     attr = item_dict[key] 
     if type(attr) is QPushButton: 
      print key 
      ###that is i don't know how to set 
      # setattr(self,key,pyqtBoundSignal.connect(self.showx)) 

回答

0

我想你应该能够使用直接连接:

def test_fn(self): 
    item_dict = self.__dict__ 
    for key in item_dict: 
     attr = item_dict[key] 
     if isinstance(attr, QPushButton): # isinstance will also detect subclasses, but you might not need it 
      print key 
      attr.clicked.connect(self.showx) 
+1

好! 我尝试连接一个点击事件。 所以我使用attr.clicked.connect(self.showx) 它的工作! –

+0

是的,抱歉,我的错误。我会更新答案 – FernAndr