QMenu改变背景颜色

时间:2015-03-31 15:16:34

标签: qt

我正在尝试更改QMenu*对象的背景颜色,它不适用于setStyleSheet(),也不会更改setPalette()

我读了this article,但那个人说我应该添加这一行:

app.setStyle(QStyleFactory::create("fusion"));

我不确定app是什么,我尝试了几种组合,但它不起作用。

谢谢!

1 个答案:

答案 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();
}

enter image description here