Text not displaying on windows xp, QT 5.6.1
-
wrote on 18 Aug 2016, 07:04 last edited by
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. :)
-
wrote on 18 Aug 2016, 09:17 last edited by
That sounds very promising, I'll give it a try tomorrow morning. Thank you very much :)
-
wrote on 19 Aug 2016, 01:47 last edited by
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.
-
wrote on 19 Aug 2016, 02:27 last edited by
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.
-
wrote on 19 Aug 2016, 02:30 last edited by
You know, I didn't even consider trying 5.6.0. I'll give it a shot. Thanks!
-
wrote on 19 Aug 2016, 02:32 last edited by
@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.
-
wrote on 19 Aug 2016, 04:44 last edited by
Unfortunately compiling 5.6.0 with the -no-directwrite flag still isn't displaying any text.
-
wrote on 19 Aug 2016, 07:10 last edited by
Hi, perhaps there's some problem with your OpenGL/video driver.
You can check (If you have Qt installed on your WIndows XP) start Qt Creator go to the Welcome page, can you see the examples pictures? -
wrote on 20 Aug 2016, 01:27 last edited by
@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?
-
@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?
Hi
If possible and you have the time, it could be really interesting
with a sample test app + the dlls from your setup.To see if that runs on same pc where text is missing.
-
wrote on 20 Aug 2016, 13:18 last edited by Rondog
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.
-
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. -
wrote on 22 Aug 2016, 00:57 last edited by
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!
7/14