【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt窗口 | 标准对话框 | 字体对话框QFontDialog

文章编号:Qt 学习笔记 / 57

文章目录

  • [Qt窗口 | 标准对话框 | 字体对话框QFontDialog](#Qt窗口 | 标准对话框 | 字体对话框QFontDialog)
    • 一、QFontDialog介绍
      • [1. 简介](#1. 简介)
      • [2. 常用方法](#2. 常用方法)
    • 二、QFontDialog使用
      • [1. 创建字体对话框并返回字体](#1. 创建字体对话框并返回字体)
      • [2. 使用字体对话框改变标签中的文本样式](#2. 使用字体对话框改变标签中的文本样式)

一、QFontDialog介绍

1. 简介

QFontDialog是Qt框架中的一个对话框类,用于选择字体。

QFontDialog提供了一个可视化的界面,允许用户选择所需的字体以及相关的属性,如字体样式、大小、粗细等。用户可以通过对话框中的选项进行选择,并实时预览所选字体的效果。

2. 常用方法

QFontDialog(parent):创建一个新的 QFontDialog 对象,parent 是可选的父窗口。

cpp 复制代码
QFontDialog * dialog = new QFontDialog(this);

getFont():静态函数,显示字体对话框并返回用户选择的字体。返回值是一个 QFont 对象。

cpp 复制代码
bool ok =false;
QFont font = QFontDialog::getFont(&ok);

setFont(font):设置默认显示的字体为 font。

cpp 复制代码
QLabel *label = new QLabel(this);
label->setFont(font);

setOption(option, on):设置对话框的选项。常用的选项有:

cpp 复制代码
QFontDialog.NoButtons:隐藏对话框上的 OK 和 Cancel 按钮。
QFontDialog.Scoped:将对话框作为模态对话框显示。

二、QFontDialog使用

1. 创建字体对话框并返回字体

在界面中创建一个按钮PushButt来触发字体对话框

右键点击按钮生成槽函数,点击clicked

对生成的槽函数进行编辑,在日志中打印在字体对话框中选择的字体

cpp 复制代码
void MainWindow::on_pushButton_clicked()
{
    bool ok =false;
    QFont font = QFontDialog::getFont(&ok);
    qDebug()<<font;
    //所选择的字体
    qDebug()<<font.family();
    //字体的大小
    qDebug()<<font.pointSize();
    //字体是否加粗
    qDebug()<<font.bold();
    //字体是否是斜体
    qDebug()<<font.italic();
}

运行结果,在日志中进行打印所选择的字体型号、大小、加粗和斜体。


2. 使用字体对话框改变标签中的文本样式

在上述代码中字体文本框返回的是QFont类,我们可以将这个返回的值进行设置到其他控件中。(这里以Label举例)在原本的界面中添加一个Label控件。

对上述按钮生成的槽函数,进行修改,使用setFont()函数设置文本到控件中,代码如下

cpp 复制代码
void MainWindow::on_pushButton_clicked()
{
    bool ok =false;
    QFont font = QFontDialog::getFont(&ok);
//    qDebug()<<font;
//    qDebug()<<font.family();
//    qDebug()<<font.pointSize();
//    qDebug()<<font.bold();
//    qDebug()<<font.italic();
    ui->label->setFont(font);
}

运行结果


相关推荐
商业白皮书10 分钟前
密不透风的瑕疵防线:东集SEV400视觉传感器,定义“轻量化”精准检测
笔记
caoerzhong10 分钟前
JeeWMS 开源仓库管理系统 GPL-3.0 合规指南:Java WMS 二次开发前必须弄清的授权边界
java·开发语言·开源·vue
Patrick在香港10 分钟前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据
笨鸟先飞的橘猫12 分钟前
树结构在游戏行业中的应用
学习·游戏
Sylvia33.38 分钟前
火星数据体育API|一站式接入足球篮球电竞等18+项目实时数据
java·开发语言·python·websocket·游戏
yangmu32031 小时前
从显像管到Micro-LED:屏幕的光之进化
学习·显示器
Data_Journal1 小时前
使用 AutoScraper 进行网页抓取:分步教程
大数据·开发语言·数据库·python·scrapy
yume_sibai1 小时前
12-Rust 性能优化指南(性能分析 + 内存优化 + SIMD + 并发优化 + 编译器优化 + 基准测试)
开发语言·性能优化·rust
萧瑟余晖2 小时前
Hibernate 核心原理与架构详解
开发语言·架构·hibernate
爱喝水的鱼丶2 小时前
SAP-ABAP:SAP MM 模块物料主数据批量导入与增强开发:字段扩展、校验逻辑与批量导入工具开发
开发语言·性能优化·sap·abap·增强·经验交流·mm