Я написал QMenu и QToolBar в Qt.
Вот что я получил:
Я не могу найти способ удалить этот белый разделитель между QMenu (File, Edit) и QToolBar (две кнопки с пианино иконки).
Код:
MainWindow::MainWindow()
{
this->setStyleSheet("background-color: black;");
initMenu();
initButtons();
}
void MainWindow::initMenu()
{
menuBar()->setStyleSheet("background: #555555; ""color: #EEEEEE; ""selection-background-color: #222222; ""border-color:#EEEEEE;");
QMenu *fileMenu = menuBar()->addMenu("File");
QAction *newFileAction = new QAction("New", this);
newFileAction->setShortcut(QKeySequence::New);
newFileAction->setStatusTip("Create new file.");
//connect
fileMenu->addAction(newFileAction);
QAction *openFileAction = new QAction("Open", this);
openFileAction->setShortcut(QKeySequence::Open);
openFileAction->setStatusTip("Open file.");
//connect
fileMenu->addAction(openFileAction);
QAction *saveFileAction = new QAction("Save", this);
saveFileAction->setShortcut(QKeySequence::Save);
saveFileAction->setStatusTip("Save file.");
//connect
fileMenu->addAction(saveFileAction);
QAction *saveAsFileAction = new QAction("Save as", this);
saveAsFileAction->setShortcut(QKeySequence::SaveAs);
saveAsFileAction->setStatusTip("Save file as another file.");
//connect
fileMenu->addAction(saveAsFileAction);
fileMenu->addSeparator();
QAction *quitAction = new QAction("Quit", this);
quitAction->setShortcut(QKeySequence::Quit);
quitAction->setStatusTip("Quit program.");
//connect
fileMenu->addAction(quitAction);
QMenu *editMenu = menuBar()->addMenu("Edit");
QAction *copyAction = new QAction("Copy", this);
copyAction->setShortcut(QKeySequence::Copy);
copyAction->setStatusTip("Copy.");
//connect
editMenu->addAction(copyAction);
}
void MainWindow::initButtons()
{QToolBar *buttonToolBar = addToolBar("Buttons");
buttonToolBar->setStyleSheet("background: #555555");
buttonToolBar->setMovable(false);
const QIcon pianoIcon = QIcon::fromTheme("piano-roll",QIcon(":/buttons/b_piano.png"));
QAction *pianoAction = new QAction(pianoIcon, tr("&Piano Roll"), this);
pianoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_1));
pianoAction->setStatusTip("Opens Piano Roll window.");
//connect();
buttonToolBar->addAction(pianoAction);
const QIcon piano2Icon = QIcon::fromTheme("piano-roll2",QIcon(":/buttons/i_piano.png"));
QAction *piano2Action = new QAction(piano2Icon, tr("&Piano Roll"), this);
piano2Action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_2));
piano2Action->setStatusTip("Opens Piano Roll window number two.");
//connect();
buttonToolBar->addAction(piano2Action);
}
В MainWindow я запускаю две функции. Первая функция создает Qmenu. Второй создает QToolBar с двумя кнопками.
Задача ещё не решена.
Других решений пока нет …