QT — QMenuBar не использует собственный стиль? c ++, QTDesigner. Ui

У меня есть небольшой пользовательский интерфейс.

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

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

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

Они просто текст.

QMenuBar:

Опции (QMenu)
—О (QAction)
—Сброс (QAction)

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

Я подключил QActions к слоту:

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

затем, используя этот слот, я попытался обновить стиль с помощью:

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

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

Q: как я могу заставить QMenuBar использовать собственный стиль ОС?

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

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

1

Решение

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

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

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]