Мы разрабатываем пользовательский интерфейс, и с прошлого месяца мы использовали библиотеки 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 и основной виджет