本人是菜鸟,这里记录的每天的学习内容
学习Qt 的第四天(笑着学)
学习内容:
1)编写一个菜单栏 and 工具栏 and 状态栏
2)核心控件(文本编辑区)
3)浮动窗口
建立一个类型为QMainWindow的窗口
注意:新建项目时,Base class选择QMianWindow类型
1.建立一个新的day_04.pro项目,Base class 选择QMianWindow,其他默认,取消Generate form(ui)。
菜单栏
1.包含<QMenuBar>菜单栏头文件
2.包含<QMenu>菜单头文件
3.包含<QAction>动作头文件
4.在项目中添加 CONFIG +=c++11
5.triggered信号表示:点击后触发
6.addSeparator()添加分隔线
1.在项目文件中添加CONFIG +=c++11
2.在项目源文件中编辑
#include "mainwindow.h"
#include <QMenuBar> //菜单栏头文件
#include <QMenu> //菜单头文件
#include <QAction> //动作头文件
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.包含<QToolBar>工具栏头文件
1.包含<QPushButton>按钮头文件
//工具栏实际意义就是菜单栏的快捷键
//添加工具栏
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 <QStatusBar> //状态栏头文件
2.#include <QLabel> //标签头文件
//状态栏
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> //核心控件,文本编辑区头文件
//核心控件,文本编辑区
QTextEdit *tEdit=new QTextEdit(this);
setCentralWidget(tEdit);
实现在窗口中文本编辑
我们可以在窗口随意输入文本,和txt功能差不多
浮动窗口
1.#include <QDockWidget>//浮动窗口头文件
//浮动窗口
QDockWidget *dWidget=new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea,dWidget);//第一个参数位置,第二个参数指这个浮动窗口
//在浮动窗口添加文本编辑区
QTextEdit *tEdit2=new QTextEdit(this);
dWidget->setWidget(tEdit2);
在窗口实现窗口随意放置(浮动)
可以放右边
也可以放左边
所有代码
#include "mainwindow.h"
#include <QMenuBar> //菜单栏头文件
#include <QMenu> //菜单头文件
#include <QAction> //动作头文件
#include <QDebug> //打印头文件
#include <QToolBar> //工具栏头文件
#include <QPushButton>//按钮头文件
#include <QStatusBar> //状态栏头文件
#include <QLabel> //标签头文件
#include <QTextEdit> //核心控件,文本编辑区头文件
#include <QDockWidget>//浮动窗口头文件
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()
{
}