1. 程式人生 > >[Qt]Qt的Connect中呼叫過載signal的問題

[Qt]Qt的Connect中呼叫過載signal的問題

最近遇到個問題,如果不用SIGNAL,SLOT的連線方式,想在connect中使用lamda表示式,那怎麼區分控制元件的過載的訊息函式呢?

可以這樣做,先給過載的訊息函式重新命名,例如,給QCombobox中的currentIndexChanged(int index)重新命名,

typedef void(QComboBox::*IntIndexChange)(int);

然後在呼叫的地方這樣寫,

connect(box, (IntIndexChange)&QComboBox::currentIndexChanged, this,[=,this](int currentIndex)
{
m_CurBoxViewType = eType;
viewChange(currentIndex);
});

就搞定了。