Qt перетащить виджет размера?

Предположим, у меня есть два виджета Qt в вертикальном макете внутри родительского виджета.

Можно ли каким-то образом добавить контрольную "границу" между ними, чтобы при щелчке и перетаскивании области границы между двумя широкоформатными окнами можно изменить относительную область родительского объекта, который они принимают?

То есть, если вы перетащите его, то нижний виджет будет больше изменен, а верхний виджет будет уменьшен меньше.

Ответ 1

Все, что вам нужно, это QSplitter.

Если вы предпочитаете создавать виджеты в коде, посмотрите документы из указанной выше ссылки.

Если вам нравится визуальный макет в QtDesigner/QtCreator, вы можете загрузить мой недавний небольшой проект и открыть его в QtCreator. В mainwindow.ui вы найдете много QSplitters! Вы можете создать их с помощью контекстного меню: выберите два виджета → щелкните правой кнопкой мыши → Lay out → Lay out вертикально в сплиттере.

Короче говоря, замените вертикальный макет на один QSplitter и добавьте к нему два виджетов в качестве дочерних.