2012-01-04 135 views

回答

1

那麼一個可能的解決方案是here。但它涉及實施你自己的風格(我記得QStyle)。但這裏要說的是我剛纔試過主窗口類的一個片段:

MainWindow::MainWindow(QWidget *parent) : 
QMainWindow(parent), 
ui(new Ui::MainWindow) { 

ui->setupUi(this); 

QMenuBar *barLeft = new QMenuBar; 
QMenuBar *barRight = new QMenuBar; 

barLeft->addAction("Foo Left 1"); 
barLeft->addAction("Foo Left 2"); 
barRight->addAction("Foo Left 1"); 
barRight->addAction("Foo Left 2"); 

QHBoxLayout *mainMenuLayout = new QHBoxLayout; 

mainMenuLayout->addWidget(barLeft); 
mainMenuLayout->addWidget(barRight); 

mainMenuLayout->setAlignment(barLeft, Qt::AlignLeft); 
mainMenuLayout->setAlignment(barRight, Qt::AlignRight); 

QWidget *central = new QWidget; 
central->setLayout(mainMenuLayout); 

setCentralWidget(central); 

}

這應該是合適的。

8

可能對這個特定問題最簡單的解決方案是使用角落部件。它可用於幾乎所有的東西在最右邊的位置新的菜單欄將當然也是,:

QMenuBar *bar = new QMenuBar(ui->menuBar); 

QMenu *menu = new QMenu("Test menu", bar); 
bar->addMenu(menu); 

QAction *action = new QAction("Test action", bar); 
bar->addAction(action); 

ui->menuBar->setCornerWidget(bar); 

結果:

Standard QMenuBar with additional rightmost 2nd QMenuBar

這是ESP。當主菜單仍然需要在QDesigner中進行編輯時有幫助...

相關問題