У меня есть небольшой пользовательский интерфейс.
У него есть главное окно. и наверху QMenuBar.
Когда я запускаю программу (в которой нет сообщений об ошибках), все работает нормально.
Однако подэлементы для меню не имеют никакого стиля при наведении или нажатии.
Они просто текст.
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, так что, может быть, это как-то повлияет на это?
Поэтому я понял, как отредактировать нужный мне стиль.
используя пользовательский редактор в qt, выберите объект QMenuBar -> Qmenu. Это объект, который содержит сами действия.
в редакторе свойств добавьте это в таблицу стилей:
selection-background-color: rgb(204, 204, 204);
color: rgb(80, 80, 80);
selection-color: rgb(0, 0, 0);
это приведет к тому, что элементы подменю будут вести себя так же, как и большинство программ, в том смысле, что они меняют цвет или их фон меняет цвет при наведении курсора.
Других решений пока нет …