多個QPushbutton綁定同一個槽函數,槽函數通過sender判斷點擊的按鈕。
int i = 0; QString str("pushButton %1"); QPushButton* pushButton; for (i = 0; i<16; ++i) { pushButton = new QPushButton(str.arg(i + 1), widget); pushButton->setMinimumSize(pushButton->size()); this->m_pSCVLayout->addWidget(pushButton); pushButton->setObjectName(QString::number(i+1)); connect(pushButton, SIGNAL(clicked()), this, SLOT(OnButrtonClickSlot2())); }
槽函數
void OnButrtonClickSlot2() { QPushButton* btn = (QPushButton*)sender(); qDebug() << "id:" << btn->objectName(); }
輸出
id: "1" id: "2" id: "3" id: "4" id: "5" id: "6" id: "7" id: "15" id: "16" id: "13" id: "11"