学习Qt 的第四天(笑着学)
1)编写一个菜单栏 and 工具栏 and 状态栏
2)核心控件(文本编辑区)
3)浮动窗口
建立一个类型为QMainWindow的窗口
注意:新建项目时,Base class选择QMianWindow类型
1.建立一个新的day_04.pro项目,Base class 选择QMianWindow,其他默认,取消Generate form(ui)。
菜单栏
1.包含
2.包含
3.包含
4.在项目中添加 CONFIG +=c++11
5.triggered信号表示:点击后触发
6.addSeparator()添加分隔线
1.在项目文件中添加CONFIG +=c++11
2.在项目源文件中编辑
#include "mainwindow.h" #include//菜单栏头文件 #include //菜单头文件 #include //动作头文件 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { resize(300,200); //添加菜单栏 QMenuBar *mBar=menuBar(); //在菜单栏上添加菜单 QMenu *m=mBar->addMenu("文件");//在菜单栏上添加了一个文件的菜单 //在文件菜单上添加子菜单项(添加动作) //新建一个动作“新建” //m->addAction("新建");也可以添加子菜单项 QAction *pNew=m->addAction("新建"); //addAction在头文件QAction中,表示新建一个动作(“新建”) //添加分割线 m->addSeparator(); //新建一个动作“打开” QAction *pOpen=m->addAction("打开"); } MainWindow::~MainWindow() { }
3.运行窗口会有一个文件菜单选项,菜单选项下会有新建和打开两个子菜单项(新建) (打开),中间存在分隔线
工具栏
1.包含
1.包含
//工具栏实际意义就是菜单栏的快捷键
//添加工具栏
QToolBar *toolBar=addToolBar("toolBar");
//工具栏添加pNew快捷键
toolBar->addAction(pNew);
//在工具栏添加按钮
QPushButton *b1=new QPushButton(this);
b1->setText("^_^");
//添加小控件
toolBar->addWidget(b1);
//按下按钮变成123
connect(b1,&QPushButton::released,
[=]()
{
b1->setText("123");
}
);
状态栏
1.#include
2.#include
//状态栏
QStatusBar *sBar=statusBar();
//新建标签(从左往右addWidget),两种方法:
//1:
QLabel *label=new QLabel(this);
label->setText("Normal text file");
sBar->addWidget(label);
//2:
sBar->addWidget(new QLabel("Normal text file",this));
//从右往左添加:
sBar->addPermanentWidget(new QLabel("1",this));
核心控件(文本编辑区)
1.#include
//核心控件,文本编辑区
QTextEdit *tEdit=new QTextEdit(this);
setCentralWidget(tEdit);
实现在窗口中文本编辑
我们可以在窗口随意输入文本,和txt功能差不多
浮动窗口
1.#include
//浮动窗口
QDockWidget *dWidget=new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea,dWidget);//第一个参数位置,第二个参数指这个浮动窗口
//在浮动窗口添加文本编辑区
QTextEdit *tEdit2=new QTextEdit(this);
dWidget->setWidget(tEdit2);
在窗口实现窗口随意放置(浮动)
可以放右边
也可以放左边
所有代码
#include "mainwindow.h" #include//菜单栏头文件 #include //菜单头文件 #include //动作头文件 #include //打印头文件 #include //工具栏头文件 #include //按钮头文件 #include //状态栏头文件 #include //标签头文件 #include //核心控件,文本编辑区头文件 #include //浮动窗口头文件 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { resize(300,200); //添加菜单栏 QMenuBar *mBar=menuBar(); //在菜单栏上添加菜单 QMenu *m=mBar->addMenu("文件");//在菜单栏上添加了一个文件的菜单 //在文件菜单上添加子菜单项(添加动作) //新建一个动作“新建” //m->addAction("新建");也可以添加子菜单项 QAction *pNew=m->addAction("新建"); //addAction在头文件QAction中,表示新建一个动作(“新建”) //添加分割线 m->addSeparator(); //新建一个动作“打开” QAction *pOpen=m->addAction("打开"); //工具栏实际意义就是菜单栏的快捷键 //添加工具栏 QToolBar *toolBar=addToolBar("toolBar"); //工具栏添加快捷键 toolBar->addAction(pNew); //添加按钮 QPushButton *b1=new QPushButton(this); b1->setText("^_^"); //添加小控件 toolBar->addWidget(b1); connect(b1,&QPushButton::released, [=]() { b1->setText("123"); } ); //状态栏 QStatusBar *sBar=statusBar(); //新建标签(从左往右addWidget),两种方法: //1: QLabel *label=new QLabel(this); label->setText("Normal text file"); sBar->addWidget(label); //2: sBar->addWidget(new QLabel("Normal text file",this)); //从右往左添加: sBar->addPermanentWidget(new QLabel("1",this)); //核心控件,文本编辑区 QTextEdit *tEdit=new QTextEdit(this); setCentralWidget(tEdit); //浮动窗口 QDockWidget *dWidget=new QDockWidget(this); addDockWidget(Qt::RightDockWidgetArea,dWidget);//第一个参数位置,第二个参数指这个浮动窗口 //在浮动窗口添加文本编辑区 QTextEdit *tEdit2=new QTextEdit(this); dWidget->setWidget(tEdit2); } MainWindow::~MainWindow() { }
到此结束了 If you insist, you will succeed ^ _ ^



