QT信号与槽是qt中很常见的东西, 那么比如在按钮很多的情况下怎样获取发送者的信息了 。
下面举 QPushbutton的例子
——h文件中QPushButton* m_buttons[20];
——cpp文件中
for (int i = 0; i < 100; i++)
{
m_buttons[i] = new QPushButton(this);
connect(m_buttons[i], SIGNAL(clicked()), this, SLOT(onButtonClicked()));
}
槽函数处理:
void QCalculatorUI::onButtonClicked()
{
QPushButton* btn = (QPushButton*)sender(); // 获取到了发送该信号按钮的指针
qDebug() << "onButtonClicked()";
qDebug() << btn->text();
}
当然一切均为 QObject 可以 转换为QObject 强转也是可以的。