Remote graphics over network
-
This question is not about making a Windows program work on Linux (and in any case not all Windows programs work correctly on Wine and not all dependencies are portable).
The question is about making Windows programs work on Docker in the context of Docker images built upon a Windows operating system.
I believe that in the coming decade Docker will cause a complete redesign of the architecture of operating systems and how products are deployed. The problem is that not many people are aware of the magnitude of the change. Even Microsoft, which started with pushing Hyper-V as a contender to Docker, has now joined it with great enthusiasm.
-
Hi
if you have access to a win docker. have you tried a QPixmap + CoreApp ?
Could be fun to know if that even works.
As far as i understand running GUI apps on win dockers is a no go until MS fixes it. -
I don't think I have enough Qt knowledge for this project. I didn't even know about QCoreApplication.
But as you say, this can be a fun project for a Qt developer, which will in addition help in motivating Windows products to migrate to Qt. -
QPixmap requires a QGuiApplication at least.
I'm not sure I follow your argument against the VNC backend.
-
Perhaps I'm looking at it too simplistically, but it seems to me that a graphical shell is not required to generate pure pixels in the program's memory. Qt has most of the required software, and if it may rely for some graphical operations on the operating system, existing open-source libraries can surely substitute.
Whatever graphical information Qt may require, such as screen size and resolution, can be communicated by the graphical client from its own environment.
Certainly some adjustments may be required in the core libraries of Qt, which is why I believe a more knowledgeable developer than myself is required.VNC presents the desktop, while a Docker Windows container does not have a desktop. It may only have consoles, either Cmd or PowerShell. You may liken the Windows Server under Docker to a Linux server without X.
-
I didn't talk about running a VNC server in a Windows docker.
I am talking about the Qt VNC backend which lets you connect a VNC client to your application to visualise its content.
-
I don't understand - if the app is running in the Docker container, there's no graphical surface to visualize, or at least not one created by Windows. I don't think that VNC creates its own canvas, or otherwise it could support multiple sessions, while currently it only mirrors the desktop created by Windows.
-
I wasn't aware of VNC for headless servers, so I did some research.
For generic VNC, it seems like all the success stories were on Linux, and in addition required at least a display adapter and its installed driver, even if having no monitor.For Qt, I have found The VNC Protocol and Qt for Embedded Linux which isn't helpful and anyway for Qt 4.8.
I have found references to the QVNCServer class, but none with doc later than Qt 4.8 and no file by that name in the sources of Qt 5.
But even if QVNCServer is no longer supported, this means that the project is easier than I thought.Could you point me to any article for using Qt VNC on a Windows totally headless server using Qt of any version ?
-
No I don't have such an article at hand.
As for testing the VNC backend:
- Download the Qt sources matching your version
- Build the VNC platform plugin
- Install it
- Pass
-platform vnc
as parameter of your application
-
Isn't the VNC platform plugin an integral part of the distribution ?
I can find no documentation later than Qt 4.8, and that also is scarce.
The VNC code for Qt 5.10 is much more voluminous than that of 4.8 and is a total rewrite, but no documentation. -
It's back since 5.9 IIRC.
QPA Parameters:
- port by default 5900
- size=WidthxHeight logical size
- mmsize=WidthxHeight physical size
- depth (8, 16, 32)
All are optional.
-
Which reports ?
-
4 bug reports in order of nuisance:
QTBUG-60576
QTBUG-54119 (wrongly marked as solved)
QTBUG-53119
QTBUG-51624 -
They don't seem to be related to the VNC plugin itself.
-
No, but I'm not sure I will start with the new VNC software, being basically beta tester, without direct contact with the developer.
The bug report site does not inspire me with confidence.
I have launched a query on the Interest forum, and am still waiting for anyone to answer.