Qt Qmenu установить направление макета вправо не работает - PullRequest
0 голосов
/ 15 мая 2018

В Qt я использую QMenuBar и добавляю к нему несколько меню. Моя программа мультиязычна, и когда я использую язык слева направо, такой как английский, все в порядке, и когда я выбираю язык, который имеет направление справа налево, я должен добавить эту строку в свой main.cpp:

MainWindow w;
w.setLayoutDirection(Qt::RightToLeft);

Таким образом, все виджеты перемещаются вправо, кроме QMenubar.

Я также добавляю эту строку в мой QMenuBar:

ui->menubar->setLayoutDirection(Qt::RightToLeft);

и

QApplication::setLayoutDirection(Qt::RightToLeft);

Но ничего не происходит.

Должен ли я установить / изменить другую опцию?

1 Ответ

0 голосов
/ 21 мая 2018

Это помогло мне переопределить QMenu :: item и QMenu :: item: выбранные стили, например

settingsList->setStyleSheet("QMenu::item { background-color: white; } QMenu::item:selected { background-color: blue; }");
settingsList->setLayoutDirection(Qt::RightToLeft);
...