IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Qt -- 21其他标准对话框 -> 正文阅读

[C++知识库]Qt -- 21其他标准对话框

在这里插入图片描述
在前面说了消息对话框 QMessageBox ,这里再来说说其他标准对话框。

颜色对话框 QColorDialog

使用颜色对话框 QColorDialog 要先添加头文件 #include <QColorDialog>

它有一个方法是 getColor ,
在这里插入图片描述
代码中的 getColor 函数参数都选择默认。

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //点击新建按钮,弹出一个颜色对话框
    connect(ui->actionNew,&QAction::triggered,[=](){
        //颜色对话框 -- 参数均选择默认
        QColorDialog::getColor();
    });
}

运行代码如下:
在这里插入图片描述
假设我要设置初始调色板颜色参数不是白色,应该怎么做呢?

//点击新建按钮,弹出一个颜色对话框
connect(ui->actionNew,&QAction::triggered,[=](){
    //颜色对话框 -- 参数均选择默认
    QColorDialog::getColor(QColor(0,0,255));
});

这里设置为蓝色。
在这里插入图片描述
需要注意 getColor 这个函数的返回值是 QColor ,当我们选中一个颜色后,点击 OK 按钮,该函数就会返回我们选中的那个颜色值,而如果我们点击 Cancel 按钮,该函数就会返回一个无效值(invalid)。

因此,我们可以用一个变量来接收这个返回值。看下面代码。

//点击新建按钮,弹出一个颜色对话框
connect(ui->actionNew,&QAction::triggered,[=](){
    //颜色对话框 -- 参数均选择默认
    QColor color = QColorDialog::getColor(QColor(0,0,255));
    //打印返回来的RGB颜色分量值
    qDebug()<<"r="<<color.red()<<","<<"g="<<color.green()<<","<<"b="<<color.blue()<<".";
});

运行程序,在应用程序输出窗口中输出如下:
在这里插入图片描述

文件对话框 QFileDialog

使用文件对话框 QFileDialog ,要先添加头文件 #include <QFileDialog>

它是一个非模态对话框。

这里使用它的一个方法是 getOpenFileName,
在这里插入图片描述
函数参数:
参数一:指定父对象,一般就是 this

参数二:对话框的标题,默认设置为caption。如果没有指定标题,则将使用默认标题。

参数三:默认路径,一般写桌面(C:\Users\DELL\Desktop),但是在代码中路径则不能直接这样写,应该写成 “C:\Users\DELL\Desktop” 或 "C:/Users/DELL/Desktop"

如果 dir 包含一个文件名,则该文件将被选中。比如参数三写成"C:\Users\DELL\Desktop\模板.txt",则模板.txt在程序运行的时候就会被选中,如下面所示。
在这里插入图片描述
参数四:文件过滤格式(文件夹不会被过滤),以便只显示那些匹配过滤器的文件。如果你需要多个过滤器,用’;;'分隔,例如:
在这里插入图片描述
演示代码如下:

//点击新建按钮,弹出一个颜色对话框
connect(ui->actionNew,&QAction::triggered,[=](){
   //文件对话框
   //QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\DELL\\Desktop");
   QFileDialog::getOpenFileName(this,"打开文件","C:/Users/DELL/Desktop","Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)");
});

在这里插入图片描述
函数返回值:
在这里插入图片描述

//点击新建按钮,弹出一个颜色对话框
connect(ui->actionNew,&QAction::triggered,[=](){
    //文件对话框
	 QString str = QFileDialog::getOpenFileName(this,"打开文件","C:/Users/DELL/Desktop","Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)");
	 qDebug()<<str;
});

运行程序,选择桌面上的一个文件 e-book.png,之后在应用程序输出界面中会输出下面这句话。
在这里插入图片描述
所以,返回值是用户所选的现有文件的路径。
在这里插入图片描述
注意:虽然我点击了打开,但是并不会真的会打开该文件,因为我没在程序中写打开该文件的代码。

字体对话框 QFontDialog

使用字体对话框 QFontDialog ,要先添加头文件 #include <QFontDialog>

这里使用它的一个方法是 getFont,看下帮助文档。
在这里插入图片描述
代码如下:

//点击新建按钮,弹出一个字体对话框
connect(ui->actionNew,&QAction::triggered,[=](){

    bool flag;
    //在 QFont 的参数中可以设置想要默认显示的字体类型、字体大小、字体是否加粗、字体是否倾斜等等的初始设置,当然也可以不进行设置
    QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));

    //font.family()是字体名称,font.pointSize()是字体大小,
    qDebug()<<"字体:"<<font.family()<<"字号:"<<font.pointSize()<<"是否加粗:"<<font.bold()<<"是否倾斜:"<<font.italic();
});

运行之后:
在这里插入图片描述
并且点击 OK 之后,在应用程序输出窗口打印输出下面的调试信息:
在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 21:32:58  更:2022-02-05 21:34:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:59:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码