标记 Qt 小部件

Tim*_*ley 2 c++ tagging qt qpushbutton qt5.3

是否可以标记 Qt 小部件?我正在以编程方式生成 QPushButtons,据我所知,无法区分它们。我检查了文档,找不到任何东西。什么是替代方案?

    for(int i = 0; i < 6; i++) {
        QPushButton *s = new QPushButton("Select");
        ...
    }
Run Code Online (Sandbox Code Playgroud)

Che*_*byl 7

最好的方法是为这个按钮设置对象名称。例如。

for(int i = 0; i < 6; i++) {
    QPushButton *s = new QPushButton("Select");
    s->setObjectName("But" + QString::number(i));
}
Run Code Online (Sandbox Code Playgroud)

您也可以setProperty()通过property()方法按钮和阅读它

编辑:

此外,您可以设置不唯一的 objectNames。假设您想为某些按钮设置背景颜色。那么你不应该自己为这个按钮应用样式表。只需为此按钮设置相同的 objectName。

for(int i = 0; i < 6; i++) {
    QPushButton *s = new QPushButton("Select");
    if(i%2 == 0)
         s->setObjectName("red");
}
Run Code Online (Sandbox Code Playgroud)

并应用下一个样式表

#red
{
    background-color: red
}
Run Code Online (Sandbox Code Playgroud)

这个按钮将被涂成红色。