Ui_OBSAbout::setupUi之ObjectName
2025-01-06
4
0
QT可以使用setObjectname()函数来绑定一个值,相当于给控件设置一个唯一id,做区分。
另外为了统一,使用的是UNICODE UTF-16作为标识,故使用fromUtf8函数来转换
if (OBSAbout->objectName().isEmpty())
{
OBSAbout->setObjectName(QString::fromUtf8("OBSAbout"));
}
以下内容来源于:https://www.cnblogs.com/zhuchunlin/p/18436470
对象名
假如有多个一样的按钮控件,我们如何区分对应按钮发出的信号呢,如何区分多个按钮?
可以使用setObjectname()函数来绑定一个值,相当于给按钮设置一个唯一id,做区分。
setObjectName()
函数描述:用来设置对象的名字,不同对象可以重复
QPushButton *button1 = new QPushButton("Button1", this);
button1->setObjectName("button1");
objectName()
函数描述:获取对象的名字
QString strobj = button1->objectName();
qDebug()<<"strobj = "<<strobj;
示例代码:
在Qt中,可以通过设置不同的objectName来区分多个按钮,或者使用不同的实例指针。另外,也可以使用标签(text)来区分按钮,或者将按钮的property设置为不同的值。
以下是使用objectName来区分按钮的例子:
QPushButton *button1 = new QPushButton("Button1", this);
button1->setObjectName("button1");
QPushButton *button2 = new QPushButton("Button2", this);
button2->setObjectName("button2");
// 连接按钮的clicked信号到相应的槽函数
connect(button1, &QPushButton::clicked, this, &YourClass::onButtonClicked);
connect(button2, &QPushButton::clicked, this, &YourClass::onButtonClicked);
在槽函数中,可以通过QObject::sender()来判断是哪个按钮被点击:
void YourClass::onButtonClicked()
{
QPushButton *button = qobject_cast<QPushButton *>(sender());
if (button->objectName() == "button1")
{
// button1被点击
}
else if (button->objectName() == "button2")
{
// button2被点击
}
}
以上代码展示了如何通过设置objectName来区分不同的按钮,并在点击事件处理函数中根据objectName来判断是哪个按钮被点击。