每一个不曾起舞的日子,都是对生命的辜负
目录
1、QMainWindow
1.1 菜单栏 只能有一个
1.1.1 QMenuBar* bar = menuBar(); 创建一个菜单栏
1.1.2 setMenuBar(bar) ; 设置到窗口中
1.1.3 QMenu* menu = bar->addMenu(“文件”); 添加菜单
1.1.4 QAction * newAction = menu->addAction(“新建”); 添加菜单项
1.1.5 fileMenu->addSeparator(); 添加分割线
//1、菜单栏 最多只能有一个 QMenuBar *bar = menuBar(); //把栏放入窗口中 setMenuBar(bar); //创建菜单 QMenu *fileMenu = bar->addMenu("文件"); QMenu *editMenu = bar->addMenu("编辑"); //创建菜单项 QAction *newAction = fileMenu->addAction("新建"); //添加分割线 fileMenu->addSeparator(); QAction *openAction = fileMenu->addAction("打开");
1.2 工具栏 可以有多个
1.2.1 QToolBar* toolbar = new QToolBar(); 创建一个工具栏
1.2.2 addToolBar( 默认停靠范围 Qt::LeftToolBarArea ,toolbar) 添加到窗口中
1.2.3 设置 只允许左右停靠 setAllowedAreas
1.2.4 设置浮动 setFloatable
1.2.5 设置移动 setMovable
//2、工具栏 可以有多个 QToolBar *toolBar = new QToolBar(this); addToolBar(Qt::LeftToolBarArea,toolBar); //设置只允许左右停靠 toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea); //设置浮动 toolBar->setFloatable(false); //工具栏中放入小部件 toolBar->addAction(newAction); //添加分割线 toolBar->addSeparator(); toolBar->addAction(openAction);
1.3 状态栏 只能有一个
1.3.1 QStatusBar * stBar = statusBar(); 创建一个状态栏
1.3.2 setStatusBar(stBar); 设置到窗口中
1.3.3 stBar->addWidget(label1); 左侧信息添加
1.3.4 stBar->addPermanentWidget(label2); 右侧信息添加
//3、状态栏 只能有一个 QStatusBar * stBar = statusBar(); setStatusBar(stBar); QLabel *label1 = new QLabel("左侧提示信息",this); stBar->addWidget(label1); QLabel *label2 = new QLabel("右侧提示信息",this); stBar->addPermanentWidget(label2);
1.4 铆接部件 可以有多个
1.4.1 QDockWidget * dock = new QDockWidget(aaa,this); 创建一个铆接部件
1.4.2 addDockWidget(Qt::BottomDockWidgetArea,dock); 添加到窗口中
1.4.3 dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
设置后期停靠范围
//4、铆接部件(浮动窗口) 可以有多个 QDockWidget *dock = new QDockWidget("aaa",this); addDockWidget(Qt::TopDockWidgetArea,dock); //只允许左右停靠 dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
1.5 核心部件 只能有一个
1.5.1 QTextEdit *edit = new QTextEdit(this); 创建一个铆接部件
1.5.2 setCentralWidget(edit); 设置到窗口中
//5、核心部件 只能有一个
QTextEdit *edit = new QTextEdit(this);
setCentralWidget(edit);
#include "mainwindow.h"
#include "QMenuBar"
#include "QToolBar"
#include "QLabel"
#include "QStatusBar"
#include "QDockWidget"
#include "QTextEdit"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(600,400);
//1、菜单栏 最多只能有一个
QMenuBar *bar = menuBar();
//把栏放入窗口中
setMenuBar(bar);
//创建菜单
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
//创建菜单项
QAction *newAction = fileMenu->addAction("新建");
//添加分割线
fileMenu->addSeparator();
QAction *openAction = fileMenu->addAction("打开");
//2、工具栏 可以有多个
QToolBar *toolBar = new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,toolBar);
//设置只允许左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
//设置浮动
toolBar->setFloatable(false);
//工具栏中放入小部件
toolBar->addAction(newAction);
//添加分割线
toolBar->addSeparator();
toolBar->addAction(openAction);
//3、状态栏 只能有一个
QStatusBar * stBar = statusBar();
setStatusBar(stBar);
QLabel *label1 = new QLabel("左侧提示信息",this);
stBar->addWidget(label1);
QLabel *label2 = new QLabel("右侧提示信息",this);
stBar->addPermanentWidget(label2);
//4、铆接部件(浮动窗口) 可以有多个
QDockWidget *dock = new QDockWidget("aaa",this);
addDockWidget(Qt::TopDockWidgetArea,dock);
//只允许左右停靠
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
//5、核心部件 只能有一个
QTextEdit *edit = new QTextEdit(this);
setCentralWidget(edit);
}
MainWindow::~MainWindow()
{
}
2、资源文件添加
2.1 将资源文件放入到项目下
2.1.1 右键项目->添加新文件 -> Qt ->Qt Recourse File
2.1.2 给资源文件起名 res 生成 res.qrc
2.1.3 用编辑的方式打开 res.qrc
2.1.4 添加前置 - 添加文件
2.1.5 使用 “ : + 前缀名 + 文件名 ”;
2.2 添加小图标
//给新建添加小图标 ui->actionNew->setIcon(QIcon("D:/桌面/新建文件夹/8ECF4E22A2964905BE78122FC25E9701.jpg")); //资源文件添加 语法:":+前缀名+文件名称" ui->actionNew->setIcon(QIcon(":tp/新建文件夹/8ECF4E22A2964905BE78122FC25E9701.jpg")); ui->actionOpen->setIcon(QIcon(":tp/新建文件夹/51AB8D1D202C95231C9879D872980EC8.jpg"));
3、 对话框创建
3.1 分类:模态对话框 和非模态对话框
3.1.1 模态 不可以对其他窗口进行操作
3.1.2 非模态 可以对其他窗口进行操作
3.1.3 模态对话框创建
- 3.1.3.1 QDialog dlg(this); //创建一个对话框
- 3.1.3.2 dlg.exec(); //阻塞
//模态对话框创建 QDialog dlg(this); dlg.resize(400,200); dlg.exec();//阻塞
3.1.4 非模态对话框创建
- 3.1.4.1 QDialog * dlg2 = new QDialog(this);
- 3.1.4.2 dlg2->show();
- 3.1.4.3 dlg2->setAttribute(Qt::WA_DeleteOnClose); //设置属性
//非模态对话框创建 QDialog *dlg2 = new QDialog(this); dlg2->resize(400,200); dlg2->show(); //设置 55号属性 点x后释放 dlg2->setAttribute(Qt::WA_DeleteOnClose);
3.2 标准对话框 QMessageBox
3.2.1 错误提示对话框 QMessageBox::critical(this,"错误","critical");
3.2.2 信息提示对话框 QMessageBox::information(this,"信息.","info");
3.2.3 询问提示对话框 QMessageBox::question(this,"询间","question");
//询问提示对话框 //参数1父窗口 参数2标题 参数3提示信息 参数4按键类型 参数5默认关联回车按键 QMessageBox::question(this, "询问" , "question", QMessageBox::Save | QMessageBox::Cancel,QMessageBox::Cancel); if(QMessageBox::Save == QMessageBox::question(this, "询问" , "question", QMessageBox::Save | QMessageBox::Cancel,QMessageBox::Cancel)){ qDebug() << "点击的是保存"; }else{ qDebug() << "点击的是取消"; }
3.2.4 警告提示对话框 QMessageBox::warning(this,"警告","warning");
//警告提示对话框 QMessageBox::warning(this,"警告","warning");
3.3 其他常用标准对话框
3.3.1 颜色对话框 QColor color = QColorDialog::getColor(Qt::red);
//颜色对话框 QColor color = QColorDialog::getColor(Qt::red); //可以获取任何颜色分量 qDebug() << color.red() << color.green() << color.blue() ;
3.3.2 文件对话框 QString filename = QFileDialog::getOpenFileName(this,"打开文件","D:\\桌面\\","(*.doc)");
QString filename = QFileDialog::getOpenFileName( this,"打开文件","D:\\桌面\\","(*.doc)"); qDebug() << filename;
3.3.3 字体对话框
//字体对话框 bool flag; QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36)); qDebug() << "字体:"<< font.family().toUtf8().data() << "字号:" << font.pointSize() << "是否加粗:"<< font.bold() << "是否倾斜:" <<font.italic();
day02 over!!!