[轉][qt]QSignalMapper 的用法,識別QPushButton的傳入參數


轉自: QSignalMapper

 

在QT編程中,如果遇到多個控件,但是他們的槽大致相同,這個該怎么處理,比如10個button,難道要寫10個槽,可以不必這樣,QSignalMapper可以幫組我們解決。

    QSignalMapper *signalMapper = new QSignalMapper(this);
    for (i = 0; i < 10; i++) {
        button = new QPushButton(QObject::tr(buttonName));
        signalMapper->setMapping(button[i], i);
        connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));
    }
    connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(handle(int)));

然后我們的槽可以這樣寫

switch(i) {

}

i 表示是哪個button發生了clicked信號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM