1.资源文件

1.1 将静态资源文 件放到项目位置下
1.2 右键项目—>添加新文件 -> QT->QT Resource File -> 资源文件起名
1.3 res生成 res.qrc
1.4 open in editor 编辑资源
1.5 添加前缀、添加文件
1.6 使用”:+ 前缀名 + 文件名”
image.png

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent) :
  4. QMainWindow(parent),
  5. ui(new Ui::MainWindow)
  6. {
  7. ui->setupUi(this);
  8. ui->menuBar->setNativeMenuBar(false);
  9. ui->actionnew->setIcon(QIcon(":/Image/Luffy.png"));
  10. ui->actionopen->setIcon(QIcon(":/Image/LuffyQ.png"));
  11. //使用添加QT资源
  12. }
  13. MainWindow::~MainWindow()
  14. {
  15. delete ui;
  16. }

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);

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent) :
  4. QMainWindow(parent),
  5. ui(new Ui::MainWindow)
  6. {
  7. ui->setupUi(this);
  8. //点击新建按钮,打开对话框
  9. connect(ui->actionnew, &QAction::triggered, [=](){
  10. //对话框 分类
  11. //模态对话框(不可以对其他窗口操作) 非模态对话框(可以对其他窗口可以操作)
  12. //模态创建 阻塞
  13. // QDialog dig(this);
  14. // dig.resize(200, 100);
  15. // dig.exec();
  16. // qDebug() << "模态对话框弹出了";
  17. //非模态
  18. //防止一闪而过,创建在堆区
  19. QDialog *dig2 = new QDialog(this);
  20. dig2->resize(100, 200);
  21. dig2->show();
  22. //开关 开关 会内存泄露
  23. //防止泄露 55
  24. dig2->setAttribute(Qt::WA_DeleteOnClose);
  25. qDebug() << "非模态对话框弹出了";
  26. });
  27. }
  28. MainWindow::~MainWindow()
  29. {
  30. delete ui;
  31. }

3.标准对话框

所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。
Qt 的内置对话框大致分为以下几类:

  • QColorDialog: 选择颜色;
  • QFileDialog: 选择文件或者目录;
  • QFontDialog: 选择字体;
  • QInputDialog: 允许用户输入一个值,并将其值返回;
  • QMessageBox: 模态对话框,用于显示信息、询问问题等;
  • QPageSetupDialog: 为打印机提供纸张相关的选项;
  • QPrintDialog: 打印机配置;
  • QPrintPreviewDialog: 打印预览;
  • QProgressDialog: 显示操作过程


3.1 QMessage对话框

错误、信息、提问、警告
参数1:父亲
参数2:标题
参数3:提示内容
参数4:按键类型
参数5:默认关联回车按键
利用返回值判断用户的输入

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent) :
  4. QMainWindow(parent),
  5. ui(new Ui::MainWindow)
  6. {
  7. ui->setupUi(this);
  8. //消息对话框
  9. //错误对话框
  10. // QMessageBox::critical(this, "critical", "错误");
  11. //信息对话框
  12. // QMessageBox::information(this, "info", "信息");
  13. //提问对话框
  14. //参数1 父亲 参数2 标题 参数3 提示内容 参数4 按键类型 参数5 默认关联回车
  15. // if(QMessageBox::Save == QMessageBox::question(this, "ques", "提问", QMessageBox::Save | QMessageBox::Cancel, QMessageBox::Cancel))
  16. // {
  17. // qDebug() << "选择保存";
  18. // }else{
  19. // qDebug() << "选择取消";
  20. // }
  21. //警告对话框
  22. QMessageBox::warning(this, "warning", "警告");
  23. });
  24. }
  25. MainWindow::~MainWindow()
  26. {
  27. delete ui;
  28. }

3.2 QColor 对话框

image.png

  1. QColor color = QColorDialog::getColor(QColor(255, 0 ,0));
  2. qDebug() << "r = " << color.red() << "g = " << color.green() << "b = " <<color.blue();

3.3 QFile

image.png

  1. //参数1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件格式
  2. //返回值是 QSting 选取的路径
  3. QFileDialog::getOpenFileName(this, "打开文件", "/home","(*.vim)");

3.4 QFont

image.png

  1. bool flag;
  2. QFont font = QFontDialog::getFont(&flag);
  3. qDebug() << "字体:" << font.family().toUtf8().data() << "字号:" << font.pointSize() << "是否加粗" << font.bold() << "是否倾斜" << font.italic();