Qt MainWindow 不显示 MenuBar
Qt MainWindow doesn't show MenuBar
在下面的代码中,我创建了 Qt Widget 的应用程序,基于 class 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()
{
}
经过一些调查并重新安装所有组件后,我解决了这个简单的问题。需要将 'Show the menus for a window' 的 'System Settings -> Appearance -> Behavior' 参数从 "In the menu bar" 更改为 "In the window's title bar"。感谢所有试图提供帮助的人。
在下面的代码中,我创建了 Qt Widget 的应用程序,基于 class 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()
{
}
经过一些调查并重新安装所有组件后,我解决了这个简单的问题。需要将 'Show the menus for a window' 的 'System Settings -> Appearance -> Behavior' 参数从 "In the menu bar" 更改为 "In the window's title bar"。感谢所有试图提供帮助的人。