I четыре Объектов QToolBar которые размещены как таковые:C++ Растяжение QLineEdit по центру панели
addToolBar(new BarLeft());
addToolBar(new SearchBar());
addToolBar(new BarRight());
addToolBarBreak();
addToolBar(new BottomBar());
Левый бар имеет несколько значков на нем. В правой есть несколько значков на нем. Центральная панель содержит текстовое поле, которое я хочу растянуть на 100% между двумя другими панелями инструментов. QT автоматически растянет самую последнюю панель инструментов на пустое пространство, если вы не сообщите об этом иначе. Я нашел результаты, предлагающие мне сделать следующее, но это не сработало.
SearchBar::SearchBar() {
setMovable(false);
editor = new QLineEdit();
editor->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
addWidget(editor);
}
Результатом является то, что поле заполняется по вертикали, но Qt ничего не отображает справа от RightBar, которую Я дал фиксированную ширину. Результат будет таким же, если я переворачиваю политики как editor->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Expanding);
, или если я опускаю вызов функции ввода.
Для визуального взгляда на то, что я хочу сделать, просто посмотрите на Google Chrome, который имеет очень похожий интерфейс:
[ Icon ] [ Icon ] [ ================ Text Field =============== ] [ Icon ] [ Icon ]
Мой Qt версии 5.2.1
Вам действительно нужно использовать панели инструментов? Это было бы проще с обычными макетами и виджетами. –
Я закончил с помощью одной панели инструментов с рамкой границы, чтобы выровнять все, так как я все равно настраивал панели инструментов. Спасибо за предложение. –