2017-07-31 52 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