2012-05-14 64 views
1

那麼,我有這個應用程序有很多o lineEdit小部件(實際上超過20)。最後,我有另外一個lineEdit應該顯示其他小部件上的值的總和。但是,我希望使用「textEdited()」信號每次更新某個值時更新該總和。我知道我可以將所有這些小部件的信號連接到產生總和的函數,但我猜想必須有另一種方法來完成此操作,以便重複代碼的數量不是必需的。我對嗎? 有誰知道如何做到這一點?在PyQt中將幾個小部件的相同信號連接到相同的函數?

感謝您的建議。

回答

3

你已經自己給出了答案:你必須將你的求和函數連接到每個QLineEdittextEdited()信號。當你存儲在一個Python列表中的所有這些部件可以用很少的代碼做到這一點:

# ...append all line edits to this list: 
line_edits = [] 

for le in line_edits: 
    le.textChanged.connect(self.mySumFunction) 

這也有個好處,如果你需要編輯你可以重新使用列表/啓用/禁用/清除/ ...同時進行所有行編輯。

+0

我沒有意識到列表技巧。這比將所有連接逐一寫入更容易。感謝您的幫助。 –

相關問題