2009-09-17 111 views
1

我想问问是否有人知道如何在两行中显示2个QToolBars,一个在另一个之上?我发现类QStyleOptionToolBar,但我不知道如何使用它...如何设置显示QToolBar的行?

很容易拖动一个工具栏与鼠标放在另一个下面,所以我认为必须有一种方式如何可以从源代码以及...

任何提示将不胜感激!

克劳斯

回答

0

尝试在添加两个工具栏之间调用QMainWindow :: addToolBarBreak(Qt :: ToolBarArea)。

+0

谢谢非常,就是这样!我以为我曾尝试过,但显然不是......我一定在QMainWindow文档中错过了它......我猜,过多的深夜编程...... – Bitjuggler 2009-09-18 15:11:43

0

我认为,当你添加了2工具栏上的,如果你把他们在同一地区,他们会自动叠加:

QMainWindow *mainWin = get_main(); // however you get it 
mainWin->addToolBar(Qt::TopToolBarArea, new QToolBar); 
mainWin->addToolBar(Qt::TopToolBarArea, new QToolBar); 

这应该在顶部产生2点的工具栏,两。

+0

谢谢!我已经尝试过了,它将两个工具栏放在一行中,但我想在两行中显示两个工具栏,即上下两行。即使第二个工具栏太大以至于它不再适合mainWin的宽度,它也不会自动推送到第二行,但它会被剪切并且不会完全显示。 Qt的文档并不清楚如何将工具栏明确地设置到第二行,我发现的唯一提示是QStyleOptionToolBar,其中有放置工具栏的选项,但我不明白如何使用此类... – Bitjuggler 2009-09-18 07:30:44

0

如果你想要的工具栏将在两行,你应该做它在以下方式:

firstToolbar = new QToolBar(this); 
secondToolbar = new QToolBar(this); 

addToolBar(Qt::TopToolBarArea, firstToolbar);  
addToolBarBreak(); 
addToolBar(Qt::TopToolBarArea, secondToolbar); 

addToolBarBreak接受的Qt :: ToolBarArea所以你可以指定哪个领域,你想添加的突破。默认情况下它是Qt :: TopToolBarArea。