第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用lambda表達(dá)式連接pyqt中的插槽

使用lambda表達(dá)式連接pyqt中的插槽

幕布斯6054654 2019-08-19 16:40:04
使用lambda表達(dá)式連接pyqt中的插槽我正在嘗試使用lambda函數(shù)連接插槽,但它沒有按照我期望的方式工作。在下面的代碼中,我成功正確連接前兩個(gè)按鈕。對(duì)于我在循環(huán)中連接的后兩個(gè),這是錯(cuò)誤的。在我之前有人有同樣的問題,但這個(gè)解決方案對(duì)我不起作用。我一直盯著我的屏幕半小時(shí),但我無法弄清楚我的代碼是如何不同的。class MainWindow(QtGui.QWidget):     def __init__(self):         super(QtGui.QWidget, self).__init__()         main_layout = QtGui.QVBoxLayout(self)         # Works:         self.button_1 = QtGui.QPushButton('Button 1 manual', self)         self.button_2 = QtGui.QPushButton('Button 2 manual', self)         main_layout.addWidget(self.button_1)         main_layout.addWidget(self.button_2)         self.button_1.clicked.connect(lambda x:self.button_pushed(1))         self.button_2.clicked.connect(lambda x:self.button_pushed(2))         # Doesn't work:         self.buttons = []         for idx in [3, 4]:             button = QtGui.QPushButton('Button {} auto'.format(idx), self)             button.clicked.connect(lambda x=idx: self.button_pushed(x))             self.buttons.append(button)             main_layout.addWidget(button)     def button_pushed(self, num):         print 'Pushed button {}'.format(num)按下前兩個(gè)按鈕會(huì)產(chǎn)生'Pushing button 1'和'Pushing button 2',另外兩個(gè)按鈕都會(huì)產(chǎn)生'Pushed button False',雖然我預(yù)計(jì)會(huì)有3和4。我還沒有完全理解lambda機(jī)制。究竟有什么聯(lián)系?指向由lambda生成的函數(shù)的指針(使用參數(shù)替換)或者是在信號(hào)觸發(fā)時(shí)評(píng)估的lambda函數(shù)?
查看完整描述

3 回答

?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

所述QPushButton.clicked信號(hào)發(fā)射指示按鈕的狀態(tài)的參數(shù)。當(dāng)您連接到lambda插槽時(shí),您指定的可選參數(shù)將idx被按鈕的狀態(tài)覆蓋。

相反,請(qǐng)將您的連接設(shè)為

button.clicked.connect(lambda state, x=idx: self.button_pushed(x))

這樣就忽略了按鈕狀態(tài),并將正確的值傳遞給您的方法。


查看完整回答
1 反對(duì) 回復(fù) 2019-08-19
  • 3 回答
  • 0 關(guān)注
  • 2082 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)