我需要为相同类型的窗口小部件实例分配不同的样式。特别适合QActions。以下样式表设置QActions的背景图像,实际工具按钮'。
QToolButton
{
background-image: url(bg.png);
}
但是我需要为这样的工具按钮指定不同的背景。
QToolButton::actClose
{
background-image: url(close.png);
}
QToolButton::actOpen
{
background-image: url(open.png);
}
有这样简单的方法还是不可能?
答案 0 :(得分:1)
如果您可以发布创建QToolButton并与QActions相关联的c ++代码,这会有所帮助。
引用QToolBar的参考“通过使用addAction()或insertAction()添加动作添加工具栏按钮。”和“QWidget * QToolBar widgetForAction(QAction * action)const 返回与指定操作关联的窗口小部件。“
因此,如果您正在创建QToolBar并调用QToolBar :: addAction(QAction *)来填充它,则可以获得指向工具按钮的指针。尝试QToolBar :: widgetForAction(),并调用setObjectName(“”)并应用Blueman的方法。
将样式表应用于窗口小部件时,在类名后面使用“#”来指定对象名称,在objectName的className之后使用“:”表示对象的状态,如“enabled”,“::”用于指定像“ListView :: Item”这样的子控制,遗憾的是QAction既不是QToolBar。
答案 1 :(得分:0)
您可以为QToolButton
的实例设置对象名称QToolButton *button = new QToolButton;
button->setObjectName("firstButton");
button = new QToolButton;
button->setObjectName("secondButton");
然后在样式表中使用它们
QToolButton#firstButton
{
background-color: gray
}
QToolButton#secondButton
{
background-color: red
}