Пометка виджетов Qt

Можно ли пометить Qt Widgets? Я генерирую QPushButtons программно, и, насколько я знаю, нет способа их дифференцировать. Я проверил документацию и ничего не смог найти. Что будет альтернативой?

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

1

Решение

Лучший способ — установить имя объекта для этих кнопок. Например.

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

Также вы можете setProperty() застегнуть и прочитать его в будущем property() метод

Редактировать:

Кроме того, вы можете установить не уникальные objectNames. Предположим, вы хотите установить цвет фона для некоторых кнопок. Тогда вы не должны применять таблицу стилей для этих кнопок самостоятельно. Просто установите то же имя объекта для этих кнопок.

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

И применить следующую таблицу стилей

#red
{
background-color: red
}

И эти кнопки будут окрашены в красный цвет.

3

Другие решения


По вопросам рекламы [email protected]