2014-09-06 3 views
1

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

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

см. Мое редактирование пожалуйста. Я немного улучшил свой ответ, возможно, вы сочтете это полезным. – Chernobyl

+0

Большое спасибо. Это именно то, что я был после :) –

ответ

3

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

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

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

Edit:

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

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

и применять следующая STYLESHEET

#red 
{ 
    background-color: red 
} 

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

+1

Подробнее см .: http://qt-project.org/doc/qt-5/qobject.html#objectName-prop – Eric

 Смежные вопросы

  • Нет связанных вопросов^_^