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. QWidget actual position is shifted down right after updating Qt libraries to 5.14.1 when using a QDockWidget

QWidget actual position is shifted down right after updating Qt libraries to 5.14.1 when using a QDockWidget

Scheduled Pinned Locked Moved Unsolved General and Desktop
qt5.8.0qt5.14.1visual studioc++qdockwidget
3 Posts 2 Posters 648 Views
  • 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.
  • A Offline
    A Offline
    AleRao
    wrote on 24 Apr 2020, 07:23 last edited by
    #1

    Hello everyone,

    We're developing a UI and since last month we used qt 5.8.0 libraries. Since last month we upgraded to 5.14.1 and everything seemed fine, until we analyzed the UI with the windows SDK inspect tool.

    Turns out that the UI looks fine to the eye, but actually the central widget positions is shifted down right. About the right shift, I'm blaming something on the QDockWidget because the central part is shifted right about the same width of the QDockWidget.
    The "<" sign is a QToolButton used to reduce the widget width, showing only pages icons.
    For the bottom shift I don't know what can cause it. The "Status" button is a tab of a QTabBar with only one tab.
    The inspect tool works fine on the Toptoolbar and the Bottomtoolbar.

    Capture.PNG

    The yellow square is the position found by the inspect tool and it should start where the red arrow is pointing, covering all the main interface. The distance between the QDockWidget and the yellow square is the exact width of the QDockWidget (rounded in green)

    The interface is all coded in c++, running on Windows 10, compiled with the msvc2017 tool on Visual Studio 2017. We are not using ui files, sadly.

    I've tried removing parents from QDockWidget constructor, removing the DockWidget (and that fixes the right position shift but not the down shift -see following image-) but the DockWidget is necessary.
    Problem cannot be QDockWidget's title because we hide it with :

    m_pDockLeft->setTitleBarWidget(new QWidget());
    

    and the title is hidden but the position of the widget still remains shifted. I'm stuck with this issue and can't figure out what to do or to try, so I'm open to suggestions and/or advice on what to look and what to do.

    Capture_nodock.PNG

    Thanks in advance sorry for any lack of informations.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      AleRao
      wrote on 24 Apr 2020, 09:41 last edited by
      #2

      I'm adding some details after further investigation.
      Seems that when reducing the QDockWidget, the right shift reduces. It seems that the amount of the shift is equal to the QListWidgetItem.

      The list on the QDockWidget is a QListWidget and it is built like this:

      if (!m_pListMain)
      {
          m_pListMain = new QListWidget();
          m_pListMain->setFlow(QListWidget::TopToBottom);
          m_pListMain->setAccessibleName("ListCentralWdg");
          m_pListMain->setFocusPolicy(Qt::NoFocus);
      
          l_pItemSession = new QListWidgetItem(
                      QIcon("./../icons/SideBar_Session.svg"), tr("Session"));
          l_pItemRadarUnits = new QListWidgetItem(
                      QIcon("./../icons/SideBar_Sensors.svg"), tr("Sector"));
          l_pItemSupply = new QListWidgetItem(
                      QIcon("./../icons/SideBar_Supply.svg"),  tr("Supply"));
          l_pItemGeoref = new QListWidgetItem(
                      QIcon("./../icons/SideBar_Georef.svg"),  tr("Georef"));
          l_pItemGeoAlarms = new QListWidgetItem(
                      QIcon("./../icons/SideBar_Rules.svg"),   tr("GeoAlarms"));
          l_pItemGeoEvents = new QListWidgetItem(
                      QIcon("./../icons/SideBar_Events.svg"),  tr("GeoEvents"));
      
          m_pListMain->insertItem(0,  l_pItemSession);
          m_pListMain->insertItem(1,  l_pItemRadarUnits);
          m_pListMain->insertItem(2,  l_pItemSupply);
          m_pListMain->insertItem(3,  l_pItemGeoref);
          m_pListMain->insertItem(4,  l_pItemGeoAlarms);
          m_pListMain->insertItem(5,  l_pItemGeoEvents);
      }
      

      I suppose that some property in the QListWidget is causing problems, because when I reduce the dock widget with the "<" QToolButton at the top, the right shift is reduced and the main widget results shifted right the same width every QListWidgetItem has.
      In the following picture I've merged how the Inspect tool sees the main Widget and a QListWidgetItem
      Capture_reduced1.PNG

      1 Reply Last reply
      0
      • S Offline
        S Offline
        SGaist
        Lifetime Qt Champion
        wrote on 24 Apr 2020, 18:46 last edited by
        #3

        Hi and welcome to devnet,

        That is pretty intriguing... Are you able to reproduce that with a minimal compilable example ?

        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

        2/3

        24 Apr 2020, 09:41

        • Login

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