如何在两个其他人之间设置工具栏

时间:2012-11-04 22:58:55

标签: c++ qt qtoolbar

我有多个工具栏,彼此相邻。我希望工具栏首先是第三个或在另一个之前。我无法弄清楚如何实现它。有人可以帮忙吗?

这是.cpp

中的内容
 QPixmap pix(16, 16);
 pix.fill(Qt::black);
 fntColorAct = new QAction(pix, tr("&Color"), this);
 connect(fntColorAct, SIGNAL(triggered()), this, SLOT(fontColor()));

 fontToolBar = new QToolBar(this);
 fontToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
 addToolBar(fontToolBar);
 fontToolBar->setWindowTitle(tr("&Format Actions"));
 addToolBarBreak(Qt::TopToolBarArea);
 addToolBar(fontToolBar);

 cmbStyle = new QComboBox(fontToolBar);
 fontToolBar->addWidget(cmbStyle);
 cmbStyle->addItem("Standard");
 cmbStyle->addItem("Bullet List (Disc)");
 cmbStyle->addItem("Bullet List (Circle)");
 cmbStyle->addItem("Bullet List (Square)");
 cmbStyle->addItem("Ordered List (Decimal)");
 cmbStyle->addItem("Ordered List (Alpha lower)");
 cmbStyle->addItem("Ordered List (Alpha upper)");
 cmbStyle->addItem("Ordered List (Roman lower)");
 cmbStyle->addItem("Ordered List (Roman upper)");
 connect(cmbStyle, SIGNAL(activated(int)), this, SLOT(fontStyle(int)));

 fntComboBox = new QFontComboBox(fontToolBar);
 fontToolBar->addWidget(fntComboBox);
 connect(fntComboBox, SIGNAL(activated(QString)), this, SLOT(fontFamily(QString)));

 cmbSize = new QComboBox(fontToolBar);
 cmbSize->setObjectName("cmbSize");
 fontToolBar->addWidget(cmbSize);
 cmbSize->setEditable(true);

 QFontDatabase database;
 foreach(int size, database.standardSizes())
     cmbSize->addItem(QString::number(size));

 connect(cmbSize, SIGNAL(activated(QString)),
         this, SLOT(fontSize(QString)));
 cmbSize->setCurrentIndex(cmbSize->findText(
           QString::number(QApplication::font().pointSize())));
}

 void MainWindow::createMenus() {
     fileMenu = menuBar()->addMenu(tr("&File"));
     fileMenu->addAction(newAct);
     fileMenu->addAction(openAct);
     fileMenu->addAction(saveAct);
     fileMenu->addAction(saveAsAct);
     fileMenu->addSeparator();
     fileMenu->addAction(printAct);
     fileMenu->addAction(printPreviewAct);
     fileMenu->addSeparator();
     fileMenu->addAction(exitAct);

     editMenu = menuBar()->addMenu(tr("&Edit"));
     editMenu->addAction(cutAct);
     editMenu->addAction(copyAct);
     editMenu->addAction(pasteAct);
     editMenu->addSeparator();
     editMenu->addAction(undoAct);
     editMenu->addAction(redoAct);

     formatMenu = menuBar()->addMenu(tr("Format"));
     formatMenu->addAction(boldAct);
     formatMenu->addAction(underlineAct);
     formatMenu->addAction(italicsAct);
     formatMenu->addSeparator()->setText(tr("Alignment"));
     formatMenu->addAction(alignLeftAct);
     formatMenu->addAction(alignCenterAct);
     formatMenu->addAction(alignRightAct);
     formatMenu->addAction(justifyAct);
     formatMenu->addAction(fntColorAct);

     menuBar()->addSeparator();
     helpMenu = menuBar()->addMenu(tr("&Help"));
     helpMenu->addAction(aboutAct);

     menuBar()->addSeparator();
     settingsMenu = menuBar()->addMenu(QIcon(":/icons/cog.png"), tr("&Settings")); }

 void MainWindow::createToolBars() {
     fileToolBar = addToolBar(tr("File"));
     fileToolBar->addAction(newAct);
     fileToolBar->addAction(openAct);
     fileToolBar->addAction(saveAct);

     editToolBar = addToolBar(tr("Edit"));
     editToolBar->addAction(cutAct);
     editToolBar->addAction(copyAct);
     editToolBar->addAction(pasteAct);
     editToolBar->addAction(undoAct);
     editToolBar->addAction(redoAct);

     formatToolBar = addToolBar(tr("Format"));
     formatToolBar->addAction(boldAct);
     formatToolBar->addAction(underlineAct);
     formatToolBar->addAction(italicsAct);
     formatToolBar->addAction(alignLeftAct);
     formatToolBar->addAction(alignCenterAct);
     formatToolBar->addAction(alignRightAct);
     formatToolBar->addAction(justifyAct);
     formatToolBar->addAction(fntColorAct); 
}

1 个答案:

答案 0 :(得分:1)

QMainWindow::insertToolBar()允许您在另一个工具栏之前插入工具栏。