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. Qt6 platform rendering issues on Ubuntu 22.04

Qt6 platform rendering issues on Ubuntu 22.04

Scheduled Pinned Locked Moved Unsolved General and Desktop
31 Posts 4 Posters 9.1k 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.
  • R Robert Hairgrove

    @JoeCFD Thanks ... would you mind sharing your code with us? :)

    JoeCFDJ Offline
    JoeCFDJ Offline
    JoeCFD
    wrote on last edited by JoeCFD
    #8

    @Robert-Hairgrove
    main.cpp

    #include "helpwidget.h"
    
    #include <QApplication>
    
    int main( int argc, char *argv[] )
    {
        QApplication app(argc, argv);
    
        auto widget = new HelpWidget;
        widget->show();
    
        return app.exec();
    }
    

    helpwidget.h

    #ifndef HELPWIDGET_H
    #define HELPWIDGET_H
    
    #include <QWidget>
    
    //! [0]
    class HelpWidget : public QWidget
    {
        Q_OBJECT
    
    public:
        HelpWidget(QWidget *parent = nullptr);
    
    };
    //! [0]
    
    #endif // HelpWidget_H
    

    helpwidget.cpp

    #include <QVBoxLayout>
    #include <QLabel>
    #include <QPushButton>
    
    
    #include "helpwidget.h"
    
    HelpWidget::HelpWidget( QWidget * parent )
        : QWidget(parent) 
    {    
        auto layout = new QVBoxLayout( this );
        setMinimumSize( 400, 400 );
    
        auto label = new QLabel( "Dis/enabled test", this );
        auto button = new QPushButton( "Press", this );
    
        layout->addWidget( label );
        layout->addWidget( button );
    
        connect( button, &QPushButton::pressed,
                 [=](){  auto isEnabled = label->isEnabled();
                         label->setEnabled( !isEnabled ); } );
    }
    
    
    R 1 Reply Last reply
    0
    • JoeCFDJ JoeCFD

      @Robert-Hairgrove
      main.cpp

      #include "helpwidget.h"
      
      #include <QApplication>
      
      int main( int argc, char *argv[] )
      {
          QApplication app(argc, argv);
      
          auto widget = new HelpWidget;
          widget->show();
      
          return app.exec();
      }
      

      helpwidget.h

      #ifndef HELPWIDGET_H
      #define HELPWIDGET_H
      
      #include <QWidget>
      
      //! [0]
      class HelpWidget : public QWidget
      {
          Q_OBJECT
      
      public:
          HelpWidget(QWidget *parent = nullptr);
      
      };
      //! [0]
      
      #endif // HelpWidget_H
      

      helpwidget.cpp

      #include <QVBoxLayout>
      #include <QLabel>
      #include <QPushButton>
      
      
      #include "helpwidget.h"
      
      HelpWidget::HelpWidget( QWidget * parent )
          : QWidget(parent) 
      {    
          auto layout = new QVBoxLayout( this );
          setMinimumSize( 400, 400 );
      
          auto label = new QLabel( "Dis/enabled test", this );
          auto button = new QPushButton( "Press", this );
      
          layout->addWidget( label );
          layout->addWidget( button );
      
          connect( button, &QPushButton::pressed,
                   [=](){  auto isEnabled = label->isEnabled();
                           label->setEnabled( !isEnabled ); } );
      }
      
      
      R Offline
      R Offline
      Robert Hairgrove
      wrote on last edited by
      #9

      @JoeCFD Thanks!

      Could you also please post the contents of the *.pro file (or CMake project file) that you used to build this?

      JoeCFDJ 1 Reply Last reply
      0
      • R Robert Hairgrove

        @JoeCFD Thanks!

        Could you also please post the contents of the *.pro file (or CMake project file) that you used to build this?

        JoeCFDJ Offline
        JoeCFDJ Offline
        JoeCFD
        wrote on last edited by JoeCFD
        #10

        @Robert-Hairgrove There you.
        testlabel.pro

        QT += widgets
        
        HEADERS += \
                helpwidget.h 
        
        SOURCES += \
                helpwidget.cpp \
                main.cpp
        
        R 1 Reply Last reply
        0
        • JoeCFDJ JoeCFD

          @Robert-Hairgrove There you.
          testlabel.pro

          QT += widgets
          
          HEADERS += \
                  helpwidget.h 
          
          SOURCES += \
                  helpwidget.cpp \
                  main.cpp
          
          R Offline
          R Offline
          Robert Hairgrove
          wrote on last edited by
          #11

          @JoeCFD Your code builds and runs OK, but when I click on the "Press" button, the label does not change its appearance.

          Please post the results of the following commands run in a terminal:

          echo $XDG_SESSION_TYPE
          echo $XDG_SESSION_DESKTOP
          echo $XDG_CURRENT_DESKTOP
          

          Also:

          echo $QT_QPA_PLATFORM
          

          Thank you!

          JoeCFDJ 1 Reply Last reply
          0
          • R Robert Hairgrove

            @JoeCFD Your code builds and runs OK, but when I click on the "Press" button, the label does not change its appearance.

            Please post the results of the following commands run in a terminal:

            echo $XDG_SESSION_TYPE
            echo $XDG_SESSION_DESKTOP
            echo $XDG_CURRENT_DESKTOP
            

            Also:

            echo $QT_QPA_PLATFORM
            

            Thank you!

            JoeCFDJ Offline
            JoeCFDJ Offline
            JoeCFD
            wrote on last edited by
            #12

            @Robert-Hairgrove
            x11
            Lubuntu
            LXQt
            empty

            1 Reply Last reply
            0
            • R Robert Hairgrove

              Here is a screenshot with an active database in the app built with Qt 5.15, showing the "To do" list with different stages enabled and disabled:
              platform_qt5_active.png

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #13

              @Robert-Hairgrove
              @SGaist understands this much better than I do, but is your picture #2 (no borders and Qt6.5) somehow "wayland"? Which might not have/do the effects of x11/xcb?

              R 1 Reply Last reply
              0
              • JonBJ JonB

                @Robert-Hairgrove
                @SGaist understands this much better than I do, but is your picture #2 (no borders and Qt6.5) somehow "wayland"? Which might not have/do the effects of x11/xcb?

                R Offline
                R Offline
                Robert Hairgrove
                wrote on last edited by
                #14

                @JonB Yes, it is wayland if I do not set "-platform xcb" as a command line option.

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  Robert Hairgrove
                  wrote on last edited by
                  #15

                  I forgot to add that the precise version of Qt I have is 6.5.3 which was installed automatically by the Qt Creator maintenance tool.

                  JoeCFDJ 1 Reply Last reply
                  0
                  • R Robert Hairgrove

                    I forgot to add that the precise version of Qt I have is 6.5.3 which was installed automatically by the Qt Creator maintenance tool.

                    JoeCFDJ Offline
                    JoeCFDJ Offline
                    JoeCFD
                    wrote on last edited by JoeCFD
                    #16

                    @Robert-Hairgrove I guess the problem should be gone if you switch to X11. Do you have to use Wayland? Wayland is the default setting in Ubuntu 22.04.

                    R 1 Reply Last reply
                    0
                    • JoeCFDJ JoeCFD

                      @Robert-Hairgrove I guess the problem should be gone if you switch to X11. Do you have to use Wayland? Wayland is the default setting in Ubuntu 22.04.

                      R Offline
                      R Offline
                      Robert Hairgrove
                      wrote on last edited by
                      #17

                      @JoeCFD "X11" is not listed as an available platform argument (see my reply to @SGaist above).

                      How would I do this, switch to X11?

                      JoeCFDJ 1 Reply Last reply
                      0
                      • R Robert Hairgrove

                        @JoeCFD "X11" is not listed as an available platform argument (see my reply to @SGaist above).

                        How would I do this, switch to X11?

                        JoeCFDJ Offline
                        JoeCFDJ Offline
                        JoeCFD
                        wrote on last edited by JoeCFD
                        #18

                        @Robert-Hairgrove logout your account. You can see a settings icon on the login screen and click the setting icon to select Xorg. Then log in and you will be good.

                        R 2 Replies Last reply
                        0
                        • JoeCFDJ JoeCFD

                          @Robert-Hairgrove logout your account. You can see a settings icon on the login screen and click the setting icon to select Xorg. Then log in and you will be good.

                          R Offline
                          R Offline
                          Robert Hairgrove
                          wrote on last edited by
                          #19

                          @JoeCFD Thanks.

                          I logged in again with XOrg, but unfortunately the problem persists.

                          JoeCFDJ 1 Reply Last reply
                          0
                          • JoeCFDJ JoeCFD

                            @Robert-Hairgrove logout your account. You can see a settings icon on the login screen and click the setting icon to select Xorg. Then log in and you will be good.

                            R Offline
                            R Offline
                            Robert Hairgrove
                            wrote on last edited by
                            #20

                            @JoeCFD BTW, what is "LXQt"?

                            JoeCFDJ 1 Reply Last reply
                            0
                            • R Robert Hairgrove

                              @JoeCFD Thanks.

                              I logged in again with XOrg, but unfortunately the problem persists.

                              JoeCFDJ Offline
                              JoeCFDJ Offline
                              JoeCFD
                              wrote on last edited by
                              #21

                              @Robert-Hairgrove did you do:
                              make distclean
                              qmake
                              make
                              run

                              1 Reply Last reply
                              0
                              • R Robert Hairgrove

                                @JoeCFD BTW, what is "LXQt"?

                                JoeCFDJ Offline
                                JoeCFDJ Offline
                                JoeCFD
                                wrote on last edited by
                                #22

                                @Robert-Hairgrove said in Qt6 platform rendering issues on Ubuntu 22.04:

                                LXQt

                                https://lxqt-project.org/

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  Robert Hairgrove
                                  wrote on last edited by
                                  #23

                                  OK, this must be a bug introduced in 6.5.

                                  I installed Qt versions 6.2.4, 6.3.2, 6.4.3 in addition to 6.5.3 and 6.6.0. Up to 6.4.3, the controls are displayed correctly (enabled=black text, disabled=gray).

                                  Beginning with 6.5.3 and also 6.6.0, the problem arises (everything displays as if enabled, regardless of state).

                                  Looks like I need to file a bug report, but I don't have time today to do it today.

                                  JonBJ SGaistS JoeCFDJ 3 Replies Last reply
                                  0
                                  • R Robert Hairgrove

                                    OK, this must be a bug introduced in 6.5.

                                    I installed Qt versions 6.2.4, 6.3.2, 6.4.3 in addition to 6.5.3 and 6.6.0. Up to 6.4.3, the controls are displayed correctly (enabled=black text, disabled=gray).

                                    Beginning with 6.5.3 and also 6.6.0, the problem arises (everything displays as if enabled, regardless of state).

                                    Looks like I need to file a bug report, but I don't have time today to do it today.

                                    JonBJ Offline
                                    JonBJ Offline
                                    JonB
                                    wrote on last edited by
                                    #24

                                    @Robert-Hairgrove
                                    As before, this is only a suggestion. I wonder whether Qt 6.5+ has introduced some change in default so that it is using Wayland over Xorg? And that might be the cause of the changed look? I came across e.g. Qt 6.5 Adding Wayland Native Interface

                                    and now set to come with Qt 6.5 is support for a Wayland native interface for application developers wanting to interact directly with Wayland object handles.

                                    Did Qt 6.5 become more preferentially Wayland-y than earlier?

                                    R 1 Reply Last reply
                                    0
                                    • JonBJ JonB

                                      @Robert-Hairgrove
                                      As before, this is only a suggestion. I wonder whether Qt 6.5+ has introduced some change in default so that it is using Wayland over Xorg? And that might be the cause of the changed look? I came across e.g. Qt 6.5 Adding Wayland Native Interface

                                      and now set to come with Qt 6.5 is support for a Wayland native interface for application developers wanting to interact directly with Wayland object handles.

                                      Did Qt 6.5 become more preferentially Wayland-y than earlier?

                                      R Offline
                                      R Offline
                                      Robert Hairgrove
                                      wrote on last edited by
                                      #25

                                      @JonB I get the same result regardless of whether I log in using Xorg or Wayland, as far as the enabled/disabled bug is concerned.

                                      If I log in with Xorg, Qt seems to load xcb, otherwise wayland is used. I can also specify either platform on the command line; this will change the way some things are displayed, e.g. window border or not, but in every case the bug described above still persists.

                                      BTW I also made sure that the Qt Wayland Compositor module was included in all of the installations of Qt. I thought not having that installed might have led to the error, but apparently it makes no difference.

                                      JonBJ 1 Reply Last reply
                                      0
                                      • R Robert Hairgrove

                                        @JonB I get the same result regardless of whether I log in using Xorg or Wayland, as far as the enabled/disabled bug is concerned.

                                        If I log in with Xorg, Qt seems to load xcb, otherwise wayland is used. I can also specify either platform on the command line; this will change the way some things are displayed, e.g. window border or not, but in every case the bug described above still persists.

                                        BTW I also made sure that the Qt Wayland Compositor module was included in all of the installations of Qt. I thought not having that installed might have led to the error, but apparently it makes no difference.

                                        JonBJ Offline
                                        JonBJ Offline
                                        JonB
                                        wrote on last edited by
                                        #26

                                        @Robert-Hairgrove said in Qt6 platform rendering issues on Ubuntu 22.04:

                                        this will change the way some things are displayed, e.g. window border or not, but in every case the bug described above still persists.

                                        Ah. So it does make a difference as I suspected, but it does not resolve/alter your particular issue.

                                        1 Reply Last reply
                                        0
                                        • R Robert Hairgrove

                                          OK, this must be a bug introduced in 6.5.

                                          I installed Qt versions 6.2.4, 6.3.2, 6.4.3 in addition to 6.5.3 and 6.6.0. Up to 6.4.3, the controls are displayed correctly (enabled=black text, disabled=gray).

                                          Beginning with 6.5.3 and also 6.6.0, the problem arises (everything displays as if enabled, regardless of state).

                                          Looks like I need to file a bug report, but I don't have time today to do it today.

                                          SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #27

                                          @Robert-Hairgrove said in Qt6 platform rendering issues on Ubuntu 22.04:

                                          OK, this must be a bug introduced in 6.5.

                                          I installed Qt versions 6.2.4, 6.3.2, 6.4.3 in addition to 6.5.3 and 6.6.0. Up to 6.4.3, the controls are displayed correctly (enabled=black text, disabled=gray).

                                          Beginning with 6.5.3 and also 6.6.0, the problem arises (everything displays as if enabled, regardless of state).

                                          Looks like I need to file a bug report, but I don't have time today to do it today.

                                          Looks like you may have found a regression, you should check the bug report system.

                                          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
                                          0

                                          • Login

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