Я пытаюсь использовать виджеты док-станции в классе основного окна в Qt5. Однако, когда я установил центральный виджет, чтобы иметь фиксированную высоту Qt имеет проблемы со стыковкой окон сверху или снизу. В принципе, похоже, что над и под центральным виджетами есть некоторые «отступы» или «поля». Если я устанавливаю автоматическую высоту в виджетах, док-станция прекрасно работает в любом направлении от края до края (сверху/снизу). Как я могу либо удалить поля, либо включить функцию стыковки при использовании центрального виджета с фиксированной высотой?Qt5 QDockWidget с фиксированной высотой CentralWidget
См. Скриншоты, например.
Dock Right ж/Авто Высота (без полей на Центральном Widget)
Dock Дно ж/Авто Высота (без полей на Центральном Widget)
Dock Дна ж/Fixed Height (Поля/Перетяжка - серые области, не будет состыковать)
Вот код, если это помогает.
Заголовок: определение
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QString);
~MainWindow();
private:
void createDockWindows();
QListWidget *m_dock_list;
QString m_directory;
QWidget *m_mainWidget;
};
Класс:
MainWindow::MainWindow(QString program)
: m_directory(".")
{
m_mainWidget = new QWidget;
m_mainWidget->setFixedHeight(156);
m_mainWidget->setStyleSheet("background-color: blue;");
createDockWindows();
// set central widget and default size
setCentralWidget(m_mainWidget);
}
// dock functions
void MainWindow::createDockWindows()
{
QDockWidget *dock = new QDockWidget(tr("Dock List"), this);
dock->setAllowedAreas(Qt::LeftDockWidgetArea |
Qt::RightDockWidgetArea |
Qt::BottomDockWidgetArea);
m_dock_list = new QListWidget(dock);
m_dock_list->addItems(QStringList()
<< "item 1"
<< "item 2"
<< "item 3"
<< "item 4");
dock->setWidget(m_dock_list);
addDockWidget(Qt::RightDockWidgetArea, dock);
}