2

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

    for(int i = 0; i < 6; i++) {
        QPushButton *s = new QPushButton("Select");
        ...
    }
4

2 回答 2

7

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

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

您也可以setProperty()通过property()方法按钮并在将来阅读它

编辑:

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

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

并应用下一个样式表

#red
{
    background-color: red
}

这个按钮将被涂成红色。

于 2014-09-06T04:08:38.133 回答
0

您可以将按钮地址用作 std::map 中的键,指向一个包含有关控件信息的结构的值。

于 2020-06-17T10:34:14.547 回答