В приведенном ниже коде я создаю приложение Qt Widget, базовый класс QMainWindow и без формы .ui.
Не могу понять, почему MenuBar не показывает, пробовал разные варианты и никто не работает.
Это изображение демонстрирует, что я получил
.
Система Ubuntu 16.04.
Использование QMake версии 3.0 и Qt версии 5.5.1
Примечание: на других машинах тот же код работает правильно.
Ниже mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtGui>
#include <QWidget>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
QMenu *file;
};
#endif // MAINWINDOW_H
Ниже mainwindow.cpp закомментированные строки показывают, как я пытался это исправить.
#include "mainwindow.h"#include <QtGui>
#include <QtWidgets>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//QVBoxLayout *vbl = new QVBoxLayout;
QMenu *file = new QMenu("&File"); //menuBar()->addMenu("&File");//new QMenu("&File");
file->addAction("&Quit",qApp,SLOT(quit()),Qt::CTRL+Qt::Key_Q);QMenuBar *mb = menuBar();
mb->addMenu(file);
mb->show();
setMenuBar(mb);
//vbl->setMenuBar(mb);
//setLayout(vbl);
resize(400,400);
}
MainWindow::~MainWindow()
{
}
После некоторых исследований и переустановки всех компонентов я решил эту простую проблему. Необходимо изменить параметр «Системные настройки -> Внешний вид -> Поведение» для «Показать меню для окна» с «В строке меню» на «В строке заголовка окна». Спасибо всем, кто пытался помочь.
Других решений пока нет …