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 xp

    Everything 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.


  • Qt Champions 2016

    @Michael-Muxi

    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-directwrite

    https://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.



  • 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?



  • @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?


  • Qt Champions 2016

    @Rondog

    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.



  • 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.


  • Qt Champions 2016

    @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!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.