1.资源文件
1.1 将静态资源文 件放到项目位置下
1.2 右键项目—>添加新文件 -> QT->QT Resource File -> 资源文件起名
1.3 res生成 res.qrc
1.4 open in editor 编辑资源
1.5 添加前缀、添加文件
1.6 使用”:+ 前缀名 + 文件名”
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->menuBar->setNativeMenuBar(false);
ui->actionnew->setIcon(QIcon(":/Image/Luffy.png"));
ui->actionopen->setIcon(QIcon(":/Image/LuffyQ.png"));
//使用添加QT资源
}
MainWindow::~MainWindow()
{
delete ui;
}
2.对话框
2.1 模态对话框 不可以对其它对话框进行操作
2.1.1 QDialog dig(this);
2.1.2 dig.exec(); 阻塞
2.2 非模态对话框 可以对其它对话框进行操作
2.2.1 防止一闪而过 创建到了堆
QDialog *dig2 = new QDialog(this);
dig2->show();
2.2.2 防止内存泄漏
dig2->setAttribute(Qt::WA_DeleteOnClose);
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//点击新建按钮,打开对话框
connect(ui->actionnew, &QAction::triggered, [=](){
//对话框 分类
//模态对话框(不可以对其他窗口操作) 非模态对话框(可以对其他窗口可以操作)
//模态创建 阻塞
// QDialog dig(this);
// dig.resize(200, 100);
// dig.exec();
// qDebug() << "模态对话框弹出了";
//非模态
//防止一闪而过,创建在堆区
QDialog *dig2 = new QDialog(this);
dig2->resize(100, 200);
dig2->show();
//开关 开关 会内存泄露
//防止泄露 55
dig2->setAttribute(Qt::WA_DeleteOnClose);
qDebug() << "非模态对话框弹出了";
});
}
MainWindow::~MainWindow()
{
delete ui;
}
3.标准对话框
所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。
Qt 的内置对话框大致分为以下几类:
- QColorDialog: 选择颜色;
- QFileDialog: 选择文件或者目录;
- QFontDialog: 选择字体;
- QInputDialog: 允许用户输入一个值,并将其值返回;
- QMessageBox: 模态对话框,用于显示信息、询问问题等;
- QPageSetupDialog: 为打印机提供纸张相关的选项;
- QPrintDialog: 打印机配置;
- QPrintPreviewDialog: 打印预览;
- QProgressDialog: 显示操作过程
3.1 QMessage对话框
错误、信息、提问、警告
参数1:父亲
参数2:标题
参数3:提示内容
参数4:按键类型
参数5:默认关联回车按键
利用返回值判断用户的输入
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//消息对话框
//错误对话框
// QMessageBox::critical(this, "critical", "错误");
//信息对话框
// QMessageBox::information(this, "info", "信息");
//提问对话框
//参数1 父亲 参数2 标题 参数3 提示内容 参数4 按键类型 参数5 默认关联回车
// if(QMessageBox::Save == QMessageBox::question(this, "ques", "提问", QMessageBox::Save | QMessageBox::Cancel, QMessageBox::Cancel))
// {
// qDebug() << "选择保存";
// }else{
// qDebug() << "选择取消";
// }
//警告对话框
QMessageBox::warning(this, "warning", "警告");
});
}
MainWindow::~MainWindow()
{
delete ui;
}
3.2 QColor 对话框
QColor color = QColorDialog::getColor(QColor(255, 0 ,0));
qDebug() << "r = " << color.red() << "g = " << color.green() << "b = " <<color.blue();
3.3 QFile
//参数1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件格式
//返回值是 QSting 选取的路径
QFileDialog::getOpenFileName(this, "打开文件", "/home","(*.vim)");
3.4 QFont
bool flag;
QFont font = QFontDialog::getFont(&flag);
qDebug() << "字体:" << font.family().toUtf8().data() << "字号:" << font.pointSize() << "是否加粗" << font.bold() << "是否倾斜" << font.italic();