Text not displaying on windows xp, QT 5.6.1
-
Hi there,
I'm working on a project which, unfortunately, requires me to support windows xp. I built Qt 5.6.1-1 from source following the instructions here: here, and threw together a quick widgets app to see if it would work.
It looks fine on windows vista through to windows 10, but on windows XP I can't see any text. The images below show the difference:
Image: How it looks on Windows 10
Image: How it looks on windows xpEverything looks ok, apart from the text, which isn't displaying.
I've looked around for common display issues in xp, one thing that jumps out is the need to force software rendering. I recompiled with -opengl dynamic, set AA_UseSoftwareOpenGL to true, and packaged opengl32sw.dll with the executable.
Unfortunately, this seems to have no effect.
If anyone can offer any insight on where to look next, it would be greatly appreciated. Thank you for reading.
-
Hi and welcome
did you compiled it with
configure -debug-and-release -opensource -confirm-license -mp -icu -openssl -nomake examples -nomake tests -target xp -skip qtwebkit -no-directwritehttps://forum.qt.io/topic/62162/qt-5-6-doesn-t-compatible-with-windows-xp/3
seems -no-directwrite is important
They also talk about QWindowsFontEngineDirectWrite and you are missing texts and the
build doc just shows
configure -target xp <other arguments>so I thought I would mention it , even i have no idea if related to that. :)
-
That sounds very promising, I'll give it a try tomorrow morning. Thank you very much :)
-
OK I rebuilt with -no-directwrite, rebuilt my app, and unfortunately I still cannot see any text.
Looks like I may need to use crufty old MFC for this project.
-
I don't know what was changed between 5.6.0 and 5.6.1 but I suspect it was only minor changes (it should be only minor changes). I have not had this issue with 5.6.0 on WinXP.
In my case I built my version of Qt from the source and did this on WinXP. This could be the difference I suppose. The options -target xp and -no-directwrite are important if you plan to run on XP.
I did have to change the configure executable so it would run on XP but otherwise I had no issues compiling and running on this OS.
-
You know, I didn't even consider trying 5.6.0. I'll give it a shot. Thanks!
-
@Rondog, did you include angle and icu in your compile? I haven't figured that part out yet, and I"m not sure if they are essential for xp support.
-
Unfortunately compiling 5.6.0 with the -no-directwrite flag still isn't displaying any text.
-
@Michael-Muxi I did not include angle or ICU.
I don't have any problems with 5.6.0 on WinXP. Everything I write I test on WinXP and I definatly would notice if text was missing. So what is the difference?
In my case I compile on WinXP (with the options -target xp and -no-directwrite). I am using MinGW. I don't really do anything out of the ordinary as far as I know. What is your setup?
-
This is a link to something with Qt 5.6.0: http://selectcalibration.ca/downloads/errorsimulator-1.1.x86.zip
My setup is:
WinXP SP2
MinGW 482
Qt 5.6.0
Compile options: -no-icu -nomake examples -nomake tests -opengl desktop -plugin-sql-mysql -target xp -no-directwrite
Compile notes: I had removed a number of folders from the Qt sources before installing (like webkit and a number of other un-needed items). You could use '-skip xxx' instead of removing the folders.In order for me to run the executable 'qtbase/configure.exe' on WinXP I had to edit this file to change the version as it was built targeting a newer OS. A good explanation of how to do this is here: http://www.tripleboot.org/?p=423 In my case I changed the values at offsets 0x148, 0x149, and 0x14a to be 05, 00, 01
I need the software to be able to run on WinXP so I built it on this OS. If there was a problem it should have appeared when compiling Qt. There are too many directives that can change what is used when compiling when moving between different OS's which is why I wanted to compile using XP. Moving forward is usually not an issue (WinXP -> Win10) but going the other way is often problematic.
I am hoping XP will disappear one day soon.
-
@Rondog
thank you.
I can confirm it runs on plain xp and seems to pretty happy - text wise.
- I am hoping XP will disappear one day soon.
Only when all the pcs dies or we simply stop supporting it.
The vendor already has. We could too. if we dared. -
Thanks to everyone who has replied to this thread.
@Rondog, your application is working perfectly on my test machine, all text is displaying as normal.
I have been compiling on a windows 10 machine with the vs2015 compiler, not on xp. I'll try replicating your build there, and if that fails I'll try on an xp machine.
Thanks again!