2
我有一個10個對象的數組,每個對象都有8個參數,都在GUI中表示。我寧願沒有定義80個插槽;我更喜歡有1個插槽處理所有的GUI引起的變化:如何確定哪個小部件觸發了插槽功能?
// Connect 10 Term objects
for(int n = 0; n < m_MaxTerms; ++n)
{
// Connect several checkboxes for the nth Term item
connect(m_Term[n].m_CD.GetData(), SIGNAL(clicked(bool)), this, SLOT(UpdateTerm()));
// Connect several edit fields for the nth Term item
connect(m_Term[n].m_Volume.GetData(), SIGNAL(editingFinished()), this, SLOT(UpdateTerm()));
...
}
當UpdateTerm()被調用我需要更新基於在觸發它的插件的變化相應的數據。但是,我怎麼能從UpdateTerm()中告訴哪個小部件觸發了它?解決該問題的一種方法是當插槽由任何觸發時,從全部小部件更新數據。但是,這是非常低效的;更新只有更改後的項目將是首選。
因此,問題:是否有可能從槽功能來確定哪些小部件觸發它?最乾淨的方法是什麼?
[獲取QPushButton在二維數組QPushButton上的索引]的可能重複(http://stackoverflow.com/questions/22641306/get-index-of-qpushbutton-on-2d-array-qpushbutton) –