一.简介
MainWindow类提供一个有菜单条 工具栏 状态条的主应用程序窗口
它是最常见的GUI主窗口形式,它由外到内依次是菜单栏 状态栏 工具栏 停靠窗口 中心窗口
二.窗体框架
1.One.pro
#------------------------------------------------- # # Project created by QtCreator 2019-06-18T13:29:09 # #------------------------------------------------- # 表示项目加入core gui模块,用于GUI设计的类库模块 QT += core gui # 条件执行语句,当QT主版本大于4才加入widgets模块 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # 生成的目标可执行文件名称 TARGET = One # 项目使用的模板是app,一般应用程序 TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS CONFIG += c++11 #QT会自动修改以下新增/删除文件 SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h FORMS += \ mainwindow.ui # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target
2.mainwindow.h
QWidget是所有用户界面对象的基类,QMainWindow和QDialog都是QWidget的子类
QMainWindow类提供一个菜单条/工具条/状态条的主应用程序窗口
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
3.mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; }
4.main.cpp
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
5.hellodialog.ui
可视化设计的窗体的定义文件,是一个XML文件
三.菜单栏 工具栏 状态栏
// 创建菜单栏 QMenu* file = menuBar()->addMenu(tr("k5")); // 创建工具栏 QToolBar* toolBar = addToolBar(tr("k4"));