2015-05-01 1 views
2

У меня есть панель инструментов с несколькими toolbuttons на него, я попытался применить стиль к отдельной кнопке с:Как укладывать один QToolButton с помощью QSS/CSS

QToolButton#button_name 
{ 
    border: 3px solid #FF00FF; 
} 

Я думал, что это был бы применен розовая граница только одной кнопки, которая имеет имя «button_name», но ничего не делает.

Я могу применить стиль ко всем кнопкам на панели инструментов, если я уберу «#button_name». Так им интересно, если есть в любом случае для индивидуальных стилей, установленных для конкретного QToolButton

Приветствиях

ответ

3

Вы должны изменить objectName от необходимого виджета, не QAction. Вы можете получить этот виджет с помощью метода widgetForAction(). Например:

QToolBar tool; 

QAction * foo = new QAction("foo",&tool); 
QAction * bar = new QAction("bar",&tool); 
QAction * baz = new QAction("baz",&tool); 

tool.addAction(foo); 
tool.addAction(bar); 
tool.addAction(baz); 

tool.widgetForAction(bar)->setObjectName("unique"); 
tool.show(); 

qApp->setStyleSheet("QToolButton#unique{border: 3px solid #FF00FF;}"); 

Результат:

enter image description here

+0

Im не объявляя QToolButton в моем коде, хотя, им Заявляя это QAction, а затем добавить его в панель инструментов, поэтому, к сожалению, это не работает, Я попробовал то же самое, установив имя объекта для действия, но это не работает либо – AngryDuck

+0

@AngryDuck понял и уже сделал, см. мое редактирование, пожалуйста. – Chernobyl

+0

Это сработало отлично, спасибо. – AngryDuck

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