Фактическая позиция QWidget смещается вниз сразу после обновления библиотек Qt до 5.14.1 при использовании QDockWidget - PullRequest
0 голосов
/ 22 апреля 2020

Мы разрабатываем пользовательский интерфейс, и с прошлого месяца мы использовали библиотеки qt 5.8.0. Теперь мы обновились до 5.14.1, и все выглядело нормально, пока мы не проанализировали пользовательский интерфейс с помощью инструмента проверки windows SDK.

Оказывается, что интерфейс выглядит хорошо, но на самом деле центральные позиции виджетов смещены вниз вправо. Я обвиняю что-то в QDockWidget, потому что центральная часть смещена вправо примерно на ту же ширину QDockWidget.

Желтый квадрат - это позиция, найденная инструментом проверки, и он должен начинаться там, где указывает красная стрелка , охватывающий весь основной интерфейс. Расстояние между QDockWidget и желтым квадратом является точной шириной QDockWidget (округлено зеленым цветом)

Интерфейс UI

Интерфейс закодирован в c ++, и мы К сожалению, не используют пользовательские файлы.

Я пытался удалить родителей из конструктора QDockWidget, удалить DockWidget (и это исправляет правильное смещение позиции, но не смещение вниз), но необходим DockWidget. При скрытии заголовка QDockWidget с помощью m_pDockLeft->setTitleBarWidget(new QWidget()); заголовок скрыт, но положение виджета все еще остается смещенным. Я застрял в этой проблеме и не могу понять, что делать или попробовать, поэтому я открыт для предложений и / или советов о том, что искать и что делать.

Заранее спасибо, извините за отсутствие информации.

Редактировать -подробнее-

Список в QDockWidget - это QListWidget, и он построен так:

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);
}

Полагаю, что некоторые свойства в QListWidget вызывают проблемы, потому что, когда я уменьшаю виджет-док с «<» QToolButton вверху, смещение вправо уменьшается, а основной виджет смещается вправо на ту же ширину, что и каждый QListWidgetItem. В <a href="https://i.stack.imgur.com/jldqA.png" rel="nofollow noreferrer"> этой картинке я объединил, как инструмент проверки показывает QListWidgetItmes и основной виджет

...