我正试图根据PyQt5组合框的激活值为按钮的点击信号分配不同的功能。
以下是我尝试的方法:
self.filterComboBox.activated[int].connect(self.filterComboChange)
def filterComboChange(self,option):
if(option==1):
self.filterAddButton.clicked.connect(self.onClickFilterAddButtonAge)
elif(option==2):
self.filterAddButton.clicked.connect(self.onClickFilterAddButtonFormat)
def onClickFilterAddButtonAge(self):
#some lines of code
def onClickFilterAddButtonFormat(self):
#some lines of code
我在组合框中选择第一个选项,按下按钮,功能1运行良好之后,当我在选择其他选项的情况下按下按钮时,在运行第二个功能之前,第一个功能将运行。
有人能告诉我这件事的原因吗?或者告诉我我做错了什么?
如果信号已经连接,则需要先断开连接,然后再连接。
def filterComboChange(self,option):
try:
self.filterAddButton.disconnect()
except:
pass
if(option==1):
self.filterAddButton.clicked.connect(self.onClickFilterAddButtonAge)
elif(option==2):
self.filterAddButton.clicked.connect(self.onClickFilterAddButtonFormat)