标记Qt小部件

问题描述 投票:2回答:2

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

    for(int i = 0; i < 6; i++) {
        QPushButton *s = new QPushButton("Select");
        ...
    }
c++ qt tagging qpushbutton qt5.3
2个回答
5
投票

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

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");
}

并应用下一个styleSheet

#red
{
    background-color: red
}

此按钮将被涂成红色。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.