2015-03-31 5 views
0

Я пытаюсь изменить цвет фона объекта QMenu*, он не работает с setStyleSheet(), ни с setPalette().QMenu изменить цвет фона

Я читал this article но парень говорит, что я должен добавить эту строку:

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

я не уверен, что app, я попробовал несколько комбинаций, но он не работает.

Спасибо!

ответ

0

Вы, наверное, забыли установить родительский QMenu «s:

#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