我正在尝试更改QMenu*
对象的背景颜色,它不适用于setStyleSheet()
,也不会更改setPalette()
。
我读了this article,但那个人说我应该添加这一行:
app.setStyle(QStyleFactory::create("fusion"));
我不确定app
是什么,我尝试了几种组合,但它不起作用。
谢谢!
答案 0 :(得分:0)
您可能忘了设置QMenu
的父级:
#include <QtGui>
class Window : public QWidget
{
public:
Window(QWidget *parent = 0) : QWidget(parent) {}
void contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction(new QAction("Item 1", this));
menu.addAction(new QAction("Item 2", this));
menu.exec(event->pos());
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window *window = new Window;
window->setStyleSheet("QMenu::item:selected { background-color: green; }");
window->show();
return app.exec();
}