0

複数のツールバーがあり、それらはすべて互いに隣接しています。最初のツールバーを3番目または前に配置したい。それを実現する方法がわかりません。誰か助けてもらえますか?

これが私の中にあるものです.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); 
}
4

1 に答える 1

1

QMainWindow :: insertToolBar()を使用すると、別のツールバーの前にツールバーを挿入できます。

于 2012-11-05T21:21:13.063 に答える