Russian Qt Forum

Qt => Вопросы новичков => Тема начата: abrigan от Апрель 12, 2017, 12:55



Название: Нестандартная компоновка QToolBar'ов в QMainWindow
Отправлено: abrigan от Апрель 12, 2017, 12:55
Добрый день.

Мне необходимо добавить 3 панели инструментов: справа, слева и сверху.
Но нужно, чтобы верхняя панель была между левой и правой (т.к.
она иногда будет скрываться - и из-за этого сейчас происходит сдвиг
боковых панелей вниз-вверх).

Не хочется переносить панели в центральный виджет через QLayout.

По-умолчанию верхняя и нижняя панель основные, а боковые - "внутренние".
Подскажите пожалуйста, как поменять приоритет, чтобы верхняя панель отображалась внутри боковых?


Название: Re: Нестандартная компоновка QToolBar'ов в QMainWindow
Отправлено: gil9red от Апрель 12, 2017, 13:56
А можете нарисовать как это выглядит? Просто схематичный рисунок в пеинте


Название: Re: Нестандартная компоновка QToolBar'ов в QMainWindow
Отправлено: abrigan от Апрель 12, 2017, 14:05
Как по-умолчанию: Standart.png (панель 1 над панелями 2)
Что нужно: Needed.png (панель 1 между панелями 2)

Забыл - все это в Qt4.8


Название: Re: Нестандартная компоновка QToolBar'ов в QMainWindow
Отправлено: kai666_73 от Апрель 12, 2017, 16:38
нет такой функциональности.
Зато есть древний тикет
https://bugreports.qt.io/browse/QTBUG-3008
на который благополучно забили ((


Название: Re: Нестандартная компоновка QToolBar'ов в QMainWindow
Отправлено: abrigan от Апрель 13, 2017, 10:06
Спасибо за ответ. Раз тут без вариантов - поместил панель в QDockWidget:

Код:
    QDockWidget *topDock = new QDockWidget;
    topDock->setFeatures(QDockWidget::NoDockWidgetFeatures);
    topDock->setTitleBarWidget(new QWidget);
    topDock->setFloating(false);
    topDock->setWidget(toolBar);    // QToolBar *toolBar;

    this->addDockWidget(Qt::TopDockWidgetArea, topDock);