我是PyQt4的新手,經過多次搜索後,我還沒有找到有關我在GUI中看到的問題的信息。PyQt4按鈕點擊註冊多次
問題是,當用戶單擊getSingleItems按鈕時,該函數運行的次數與用戶單擊getAllItems的次數相同。例如,如果用戶單擊getAllItems來填充項目字段,然後他們單擊getSingleItem,則getitems將運行一次,並且他們將根據期望打印一次結果。但是,如果用戶從列表中選擇另一項並再次單擊getAllItems,則在getSingleItem上,結果是getitem將運行2x,因此會打印2x。這會隨着每次運行而增加,因此單擊getAllItems 4x即使不更改選擇,然後單擊getitem將只需單擊getSingleItem即可運行4次。只有刷新它的方法是關閉GUI並重新打開。任何幫助表示讚賞。
class UpdateItem(QDialog, updateitem_ui.Ui_updateitem):
def __init__(self):
QDialog.__init__(self)
self.setupUi(self)
tests = ['Test1', 'Test2', 'Test3']
self.list.addItems(tests)
self.exit.clicked.connect(self.close)
self.setFocus()
self.getAllItems.clicked.connect(self.getitems)
def getitems(self):
self.items.clear()
self.items.addItems(self.list.currentText())
self.getSingleItem.clicked.connect(self.getitem)
def getitem(self):
self.item_id = self.items.currentText()
print(self.item_id)
app = QApplication(sys.argv)
gui = UpdateItem()
gui.show()
app.exec_()
您的'getitems()'方法會在點擊時進行連接。不應該在'__init__'中嗎? – NuclearPeon
你是對的。這個簡單的變化解決了它。我將不得不將其餘的連接移至__init___。謝謝! – Mauricio