Всегда показывать вторую строку в QToolbar

Я упорядочил свои панели инструментов в верхней части в две строки, что-то вроде

MyMainWindow::init()
{
addToolBar(Qt::TopToolBarArea, m_toolbar_1);
addToolBar(Qt::TopToolBarArea, m_toolbar_2);

addToolBarBreak(Qt::TopToolBarArea);

addToolBar(Qt::TopToolBarArea, m_toolbar_3);
addToolBar(Qt::TopToolBarArea, m_toolbar_4);
addToolBar(Qt::TopToolBarArea, m_toolbar_5);
}

приводя к результатам, подобным этому примеру, используя Qt Designer.
Как видите, верхние панели инструментов расположены в две строки.
Панели инструментов расположены в две строки

Сейчас очень часто панели инструментов во второй строке (то есть m_toolbar_3, m_toolbar_4 а также m_toolbar_5) спрятаться.
Это приводит к исчезновению всей второй строки, как видно на следующем снимке экрана.
введите описание изображения здесь

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

Это сделано для того, чтобы избежать визуального шума постоянно появляющихся / исчезающих панелей инструментов.
Визуальный шум особенно узнаваем в центральном виджете (где находится «Форма …»), который перемещается вверх или вниз.

Есть способ сделать это?

0

Решение

Возможно, это не самое лучшее решение, но оно должно работать.

QToolBar имеет visibilityChanged сигнал.

Вы можете подключить это к слоту, например:

connect(m_toolbar, SIGNAL(visibilityChanged(bool)), this, SLOT(onVisibilityChanged(bool)))

Куда :

onVisibilityChanged(bool visible)
{
if(false == visible)
{
m_toolbar.setVisible(true);
}
}
0

Другие решения

Если все в порядке, панели инструментов остаются на одном месте, независимо от того, что вы можете просто установить их как неподвижные. QToolBar::setMovable ложно.

0

По вопросам рекламы [email protected]