qt当有多个新建按钮在界面,点击其中一个怎么知道我点的是哪个按钮?
时间: 2024-02-11 15:06:59 浏览: 98
在Qt中,每个按钮对象都有一个唯一的`objectName`属性,你可以使用该属性来识别你点击的是哪个按钮。
当你在界面上新建一个按钮时,可以在Qt Designer中为该按钮设置一个唯一的`objectName`属性,或者在代码中使用`setObjectName`方法来设置该属性。例如:
```cpp
QPushButton *button1 = new QPushButton("Button 1", this);
button1->setObjectName("button1");
QPushButton *button2 = new QPushButton("Button 2", this);
button2->setObjectName("button2");
```
在按钮的点击事件处理函数中,你可以使用`sender()`函数来获取当前发送信号的对象,然后使用`objectName()`函数来获取该对象的`objectName`属性值。例如:
```cpp
void MainWindow::onButtonClicked()
{
QPushButton *clickedButton = qobject_cast<QPushButton *>(sender());
if (clickedButton) {
QString buttonName = clickedButton->objectName();
qDebug() << "Clicked button: " << buttonName;
}
}
```
在上面的代码中,我们首先使用`qobject_cast`函数将发送信号的对象转换为`QPushButton`类型,并检查转换是否成功。然后,我们使用`objectName`函数获取该按钮的`objectName`属性值,并打印输出。
这样,当你点击任何一个按钮时,都会触发`onButtonClicked`函数,并输出你点击的按钮的`objectName`属性值。
阅读全文