Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Remote graphics over network
Forum Updated to NodeBB v4.3 + New Features

Remote graphics over network

Scheduled Pinned Locked Moved Solved General and Desktop
28 Posts 5 Posters 9.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS SGaist

    QPixmap is for representing something to the screen which requires access to the graphic stack. Something that is likely not available from your description.

    H Offline
    H Offline
    Harry123
    wrote on last edited by Harry123
    #8

    @SGaist

    The idea would be to present it on a remote graphic screen. After all, the QPixmap contains pixels, and these can be presented on any graphical surface. It's only necessary to transfer the pixels over the network to where they can be processed, so to do nothing else in the generating server, as if the non-existent display was done.

    The pixels would be generated by Qt but processed by the graphical client. That client itself does not need to be programmed using the Qt libraries, this being an overkill, but can be a small native program.

    This way Qt does not need to be installed on the client computer but only in the Docker container. The idea here is to deploy the user program with its dependencies, which includes Qt, all as one unit that requires only Docker to execute. The user program can then be executed without installing nothing at all on the client computer, by one Docker command-line.

    This is deployment simplified to the limit. I believe that in the near future it will replace the actual forms of deployment which require painfully installing and correctly configuring packages required by programs. Programs will this way come prepackaged as images with their dependencies and ready for instant execution.

    This is a very primitive design of the architecture I advocate as regarding graphics:

    Docker container
    ------------------
    | User program   |
    | Qt libraries   |
    -----------------
        |
        v
      Pixels
        |
        |  (network)
        v
    --------------------
    | Graphical client |
    --------------------
        |
        v
    Client screen
    
    1 Reply Last reply
    0
    • hskoglundH Offline
      hskoglundH Offline
      hskoglund
      wrote on last edited by
      #9

      Hi, I had a similar problem: supporting legacy16-bit Windows GUI programs while switching to 64-bit Linux, I installed Wine and the .exe files start just fine.

      H 1 Reply Last reply
      1
      • hskoglundH hskoglund

        Hi, I had a similar problem: supporting legacy16-bit Windows GUI programs while switching to 64-bit Linux, I installed Wine and the .exe files start just fine.

        H Offline
        H Offline
        Harry123
        wrote on last edited by Harry123
        #10

        @hskoglund

        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.

        1 Reply Last reply
        0
        • mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #11

          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.

          H 1 Reply Last reply
          0
          • mrjjM mrjj

            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.

            H Offline
            H Offline
            Harry123
            wrote on last edited by
            #12

            @mrjj

            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.

            mrjjM 1 Reply Last reply
            0
            • H Harry123

              @mrjj

              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.

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #13

              @Harry123

              Well, it seems there is no gfx stack included making it
              huge task to do it and most likely will be impossible until MS makes it possible.
              That is why i wanted to test if pixmap works. :)

              H 1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #14

                QPixmap requires a QGuiApplication at least.

                I'm not sure I follow your argument against the VNC backend.

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                1
                • mrjjM mrjj

                  @Harry123

                  Well, it seems there is no gfx stack included making it
                  huge task to do it and most likely will be impossible until MS makes it possible.
                  That is why i wanted to test if pixmap works. :)

                  H Offline
                  H Offline
                  Harry123
                  wrote on last edited by
                  #15

                  @mrjj

                  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.

                  @SGaist

                  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.

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #16

                    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.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    H 1 Reply Last reply
                    1
                    • SGaistS SGaist

                      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.

                      H Offline
                      H Offline
                      Harry123
                      wrote on last edited by
                      #17

                      @SGaist

                      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.

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by SGaist
                        #18

                        As I already wrote: not the VNC application. VNC doesn't require a physical display.

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        H 1 Reply Last reply
                        1
                        • SGaistS SGaist

                          As I already wrote: not the VNC application. VNC doesn't require a physical display.

                          H Offline
                          H Offline
                          Harry123
                          wrote on last edited by Harry123
                          #19

                          @SGaist

                          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 ?

                          1 Reply Last reply
                          0
                          • H Offline
                            H Offline
                            Harry123
                            wrote on last edited by
                            #20

                            I have advanced some more and found VNC in Qt 5.9, but must say that there is almost no documentation and no samples.

                            Can anyone help ?

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #21

                              No I don't have such an article at hand.

                              As for testing the VNC backend:

                              1. Download the Qt sources matching your version
                              2. Build the VNC platform plugin
                              3. Install it
                              4. Pass -platform vncas parameter of your application

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              H 1 Reply Last reply
                              0
                              • SGaistS SGaist

                                No I don't have such an article at hand.

                                As for testing the VNC backend:

                                1. Download the Qt sources matching your version
                                2. Build the VNC platform plugin
                                3. Install it
                                4. Pass -platform vncas parameter of your application
                                H Offline
                                H Offline
                                Harry123
                                wrote on last edited by
                                #22

                                @SGaist

                                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.

                                1 Reply Last reply
                                0
                                • SGaistS Offline
                                  SGaistS Offline
                                  SGaist
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #23

                                  It's back since 5.9 IIRC.

                                  QPA Parameters:

                                  1. port by default 5900
                                  2. size=WidthxHeight logical size
                                  3. mmsize=WidthxHeight physical size
                                  4. depth (8, 16, 32)

                                  All are optional.

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  H 1 Reply Last reply
                                  3
                                  • SGaistS SGaist

                                    It's back since 5.9 IIRC.

                                    QPA Parameters:

                                    1. port by default 5900
                                    2. size=WidthxHeight logical size
                                    3. mmsize=WidthxHeight physical size
                                    4. depth (8, 16, 32)

                                    All are optional.

                                    H Offline
                                    H Offline
                                    Harry123
                                    wrote on last edited by
                                    #24

                                    @SGaist

                                    Thanks for the info.
                                    I marked this as solved, although I'm not really too confident about using this very new software.
                                    If only bug reports were better supported (of 3 bug reports none ever got solved).

                                    1 Reply Last reply
                                    0
                                    • SGaistS Offline
                                      SGaistS Offline
                                      SGaist
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #25

                                      Which reports ?

                                      Interested in AI ? www.idiap.ch
                                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      H 1 Reply Last reply
                                      0
                                      • SGaistS SGaist

                                        Which reports ?

                                        H Offline
                                        H Offline
                                        Harry123
                                        wrote on last edited by
                                        #26

                                        @SGaist

                                        4 bug reports in order of nuisance:

                                        QTBUG-60576
                                        QTBUG-54119 (wrongly marked as solved)
                                        QTBUG-53119
                                        QTBUG-51624

                                        1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #27

                                          They don't seem to be related to the VNC plugin itself.

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          H 1 Reply Last reply
                                          1

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved