一. QMainWindow简介
QmainWindow是QT推出的QWidget窗口的子类,相对QWidget而言,QMainWindow的细节相对更多,分区更细致,加入了分栏等新工具,使得设计变得更加直观。
QMainWindow的分区主要有以下几个:Menu Bar(菜单栏),Toolbars(工具栏),Dock Widget(悬浮窗),Main Widget(*窗口)、Status Bar(状态栏)。
二. Menu Bar(菜单栏)的相关操作
1. 对Menu的操作
菜单栏顾名思义,是所有Menu(菜单)的集合,所以为了学习Menu Bar的相关操作,需要先学习Menu的相关操作。
在单击菜单标题后,会弹出此菜单下的所有内容:菜单下可以包含PushButton、ComboBox等内容,但是最基础的,也是最必要的,是 Action(指令)。引入指令需要用到QAction库。定义指令后,即可用addAction()将指令加入菜单。
2. 对Menu Bar的操作
类似于将指令加入菜单,将菜单加入菜单栏也只是需要加一步addmenu()。
以下为mainwindow.h:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtGui/QMainWindow> class QAction; class QMenu; class MainWindow : public QMainWindow { Q_OBJECT protected: QAction *openAction; //定义一个动作 QMenu *fileMenu; //定义一个菜单 public: MainWindow(QWidget *parent = 0); ~MainWindow(); }; #endif
以下为mainwindow.cpp:
<pre name="code" class="cpp"><pre name="code" class="cpp">#include "mainwindow.h" #include <QMenu> #include <QMenuBar> #include <QAction> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { openAction = new QAction(tr("Open"),this); //初始化动作 fileMenu = new QMenu; //创建一个菜单 fileMenu = menuBar()->addMenu(tr("File")); //将菜单添加到菜单栏上 fileMenu->addAction(openAction); //将动作添加到菜单上 } MainWindow::~MainWindow() { }
三. Toolbar(工具栏)的相关操作