QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 05_QMainWindow
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
#使用Lamda表达式
CONFIG += C++11
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include <QDebug>
#include <QPushButton>
#include <QMenuBar> //菜单栏
#include <QMenu> //菜单
#include <QToolBar> //工具栏
#include <QStatusBar> //状态栏
#include <QLabel>
#include <QTextEdit> //核心控件,文本编辑区
#include <QDockWidget> //浮动窗口
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//1)菜单栏
QMenuBar *mBar = menuBar();
//添加菜单
QMenu *pFile = mBar -> addMenu("文件");
//添加菜单项,添加动作
QAction *pNew = pFile -> addAction("新建");
//Lamda表达式,信号处理
connect(pNew,&QAction::triggered,
[=]()
{
qDebug() << "新建被按下";
}
);
pFile -> addSeparator(); //添加分割线
QAction *pOpen = pFile -> addAction("打开");
//2)工具栏,菜单栏的快捷方式
QToolBar *toolBar = addToolBar("toolBar");
//工具栏添加快捷键
toolBar -> addAction(pNew);
QPushButton *b = new QPushButton(this);
b -> setText("^_^");
//添加小控件
toolBar->addWidget(b);
//Lamda表达式,信号处理
connect(b, &QPushButton::clicked,
[=]()
{
b->setText("123");
}
);
//3)状态栏
QStatusBar *sBar = statusBar();
QLabel *label = new QLabel(this);
label->setText("Normal text file");
sBar->addWidget(label);
//addWidget 从左往右添加
sBar->addWidget(new QLabel("2",this));
//addPermanentWidget 从由往左添加
sBar->addPermanentWidget(new QLabel("3",this));
//4)核心控件
QTextEdit *tEdit = new QTextEdit(this);
setCentralWidget(tEdit);
//5)浮动窗口
QDockWidget *dock = new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea,dock);
QTextEdit *textEdit1 = new QTextEdit(this);
dock->setWidget(textEdit1);
}
MainWindow::~MainWindow()
{
}
效果: