QMenuBar не использует собственный стиль? С++, QTDesigner. Уи

У меня маленький Уи.

У него есть главное окно. а вверху находится QMenuBar.

  1. Когда я запускаю программу (в которой нет сообщений об ошибках), все работает нормально.

  2. Однако подпункты меню не имеют стиля при наведении или нажатии.

Они представляют собой обычный текст.

QMenuBar:

Параметры (QMenu)
--О программе (QAction)
--Сброс (QAction)

Я думал, что они возьмут родной стиль ОС для пунктов меню. Но у них нет никакого стиля, кроме простого черного текста.

Я подключил QActions к SLOT:

QAction::connect(ui->actionAbout, SIGNAL(hovered()), this, SLOT(changeAbout())); 

затем, используя этот СЛОТ, я попытался обновить стиль через:

 void MainWindow::changeAbout(){
    ui->menuBarA->setStyleSheet("background-color: rgb(200,0,0);}");
 }

конечно, это только стиль всего меню. но он показывает, что QAction был подключен.

Вопрос: как заставить QMenuBar использовать собственный стиль ОС?

В: или как мне стилизовать QActions, чтобы они включали состояния наведения и нажатия, как это делают обычные окна?

Я использую Windows 10, так что, может быть, это как-то влияет на это?


person joacampb    schedule 10.06.2017    source источник


Ответы (1)


Итак, я понял, как отредактировать нужный мне стиль.

используя редактор пользовательского интерфейса в qt, выберите объект QMenuBar -> Qmenu. Это объект, который содержит сами Действия.

в редакторе свойств добавьте это в таблицу стилей:

selection-background-color: rgb(204, 204, 204);
color: rgb(80, 80, 80);
selection-color: rgb(0, 0, 0);

это приведет к тому, что элементы подменю будут вести себя как большинство программ, в том смысле, что они меняют цвет или их фон меняет цвет при наведении курсора.

person joacampb    schedule 15.06.2017