2009-09-17 116 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。