//создаём 44 кнопки QToolButton *toolButton_m1[44];for (int i=0; i<44; i++){ toolButton_m1[i] = new QToolButton(widgetMap); toolButton_m1[i]->setGeometry(QRect(250+(i*16), 43-i, 13, 3+i));connect(toolButton_m1[i], SIGNAL(clicked()), this, SLOT(toolButton_m1_0_clicked()));}
void My_MainWindow::my_universal_slot_for_buttons(void){ //Получаем указатель, на кнопку, которая послала сигнал QPushButton* pButton = (QPushButton*) sender(); if (NULL != pButton) {//Если вдруг слот не вызвался сам по себе, а по сигналу, то if (pMy_First_Button == pButton) { } if (pMy_seconf_Button = pButton) { } } //if (NULL != pButton)}
QButtonGroup *btnGrp = new QButtonGroup(this);//создаём 44 кнопки QToolButton *toolButton_m1[44]; for (int i=0; i<44; i++) { toolButton_m1[i] = new QToolButton(widgetMap); toolButton_m1[i]->setGeometry(QRect(250+(i*16), 43-i, 13, 3+i)); btnGrp->addButton(toolButton_m1[i]);}connect(btnGrp, SIGNAL(buttonClicked( QAbstractButton *)), this, SLOT(toolButton_m1_0_clicked( QAbstractButton *)));
void My_MainWindow::toolButton_m1_0_clicked(QAbstractButton *pressedButton) { QToolButton *btn = qobject_cast<QToolButton *>(pressedButton); <do something with btn>}
void My_MainWindow::toolButton_m1_0_clicked(QAbstractButton *pPressedButton) { QToolButton *pBtn = qobject_cast<QToolButton *>(pPressedButton); if ((NULL != pBtn) && (toolButton_m1[1] == pBtn) { QMessageBox::critical(NULL, "Паника!!!!", "Кто-то нажал на кнопку toolButton_m1[1]."); } }
int command=0;int newcommand=0;connect(btStart, SIGNAL(clicked()), this, SLOT(SendCommand(1))); //Если нажата кнопка btStart вызвать "SendCommand" и передать "command=1"connect(btStop, SIGNAL(clicked()), this, SLOT(SendCommand(2)));...void MaimWindow::SendCommand(int command){ newcommand=command; //Например}