Qt 6.7 Windows 11 Bug with Arabic languarge
-
You can use windows 11 style on a recent windows (maybe with some quirks but for testing purposes) by modifying src\plugins\styles\modernwindows\main.cpp and pass
-style windows11
to your app.
But from my pov it's not an arabic problem - it also does not work with english/german when the app is started with-reverse
-
Yes, of course because of right to left / reverse.
hmm... About your "quirks". I sadly don't understand them, also because the last time you explained me that it is impossible:
https://forum.qt.io/topic/153241/qt-6-7-beta1-windows11-style-and-windeployqt
I will buy a new computer next year. (In fact my idea was to wait until Windows 12 is released for the new computer)I will try tomorrow your quirk. I am coding only in my spare time. My profession is not coding. It's just a hobby, so I am slower then "real" coders.
-
It does not work for pre-compiled version. Adding a hack somewhere to make it run for debugging is not something which should be used for daily work but is good for debugging stuff.
Already have an idea what's going wrong, with the help of 10 lines of code:int main(int argc, char *argv[]) { QApplication app(argc, argv); QMenu menu; menu.addAction(QString::fromUtf8("Action 1")); menu.addAction(QString::fromUtf8("Long Action 2")); menu.addAction(QString::fromUtf8("Very long Action 3")); // menu.addAction(QString::fromUtf8("أدنى أيام في الأسبوع لكل المدرسين")); // menu.addAction(QString::fromUtf8("الجداول")); // menu.addAction(QString::fromUtf8("تعديل أنشطة فرعية")); menu.exec(QPoint(100, 100)); return 0;
-
Maybe also add a sub-item in the example.
Because view the first picture that i posted in the first message here.
You can see that the arrow (>) that shows that there are sub-items is also in the wrong direction. So that should be checked also if someone try to fix this bug. -
When I'm correct there is no need for it - looks like the QPainter is getting the wrong layout direction for unknown reason.
-
Ok, found the problem. It's not really a windows11 style problem but it is getting visible there:
QMenu menu; menu.addAction(QString::fromUtf8("Action 1")); menu.addAction(QString::fromUtf8("Long Action 2")); menu.addAction(QString::fromUtf8("Very long Action 3")); QPixmap pm(400, 400); pm.fill(Qt::transparent); menu.render(&pm); pm.save("D:\\rendered.png");
Now start the program with the option
-reverse
and compare the saved png with the expected result :)
What we see:
What the png looks like:
-
Thank you, @Christian-Ehrlicher ! I understood your answer after I looked at your QTBUG page answer: https://bugreports.qt.io/browse/QTBUG-124931
-