QT-UI
+ -

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来判断是哪个按钮被点击。

0 篇笔记 写笔记

ReactOS 根据名称获取对象指针ObReferenceObjectByName
ObReferenceObjectByName在Windows中是一个未文档化的函数,其功能是通过名称获取对象指针。其函数原型为:NTKERNELAPINTSTATUSNTAPIObReferenceObjectByName ( _In_ PUNICODE_STRING Object......
Ui_OBSAbout::setupUi之ObjectName
QT可以使用setObjectname()函数来绑定一个值,相当于给控件设置一个唯一id,做区分。另外为了统一,使用的是UNICODE UTF-16作为标识,故使用fromUtf8函数来转换if (OBSAbout->objectName().isEmpty()){ OBSAbou......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!