Qt开发:QFontDialog的使用

Qt 编程 —— 字体对话框(QFontDialog)的使用 【学习笔记】 QFontDialog类是 Qt 提供的一个用于设置字体样式的对话框小部件。 阅读详情

一、QFontDialog的介绍

QFontDialog 是 Qt 提供的标准字体选择对话框,它允许用户选择字体、大小、样式等信息。它的主要作用是提供一个用户友好的界面来选择字体,并将用户的选择返回给应用程序。

QFontDialog 的基本功能:

  • 允许用户选择字体、字形、大小等。
  • 可选是否显示颜色选择。
  • 支持模态和非模态使用方式。
  • 允许程序预设字体并获取用户选择的字体。

二、QFontDialog的使用方法

1 静态方法
最简单的使用方式是调用 QFontDialog::getFont(),它会弹出一个模态对话框,并返回用户选择的字体:

#include <QApplication>
#include <QFontDialog>
#include <QDebug>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    bool ok;
    QFont font = QFontDialog::getFont(&ok);
    
    if (ok) {
        qDebug() << "用户选择的字体:" << font.family();
        qDebug() << "字体大小:" << font.pointSize();
    } else {
        qDebug() << "用户取消了字体选择";
    }

    return 0;
}

说明:

  • QFontDialog::getFont(&ok) 会阻塞执行,直到用户选择字体或取消对话框。
  • ok 变量表示用户是否选择了字体,false 代表用户点击了“取消”按钮。

2 创建 QFontDialog 对象
除了使用静态方法,我们还可以创建 QFontDialog 实例,以便自定义其行为:

#include <QApplication>
#include <QFontDialog>
#include <QPushButton>
#include <QWidget>
#include <QVBoxLayout>
#include <QLabel>

class FontSelector : public QWidget {
public:
    FontSelector(QWidget *parent = nullptr) : QWidget(parent) {
        QVBoxLayout *layout = new QVBoxLayout(this);
        
        label = new QLabel("请选择字体", this);
        QPushButton *btn = new QPushButton("选择字体", this);

        layout->addWidget(label);
        layout->addWidget(btn);

        connect(btn, &QPushButton::clicked, this, &FontSelector::selectFont);
    }

private:
    QLabel *label;

    void selectFont() {
        QFontDialog fontDialog(this);
        fontDialog.setCurrentFont(label->font());  // 预设当前字体
        if (fontDialog.exec() == QDialog::Accepted) {
            label->setFont(fontDialog.selectedFont()); // 更新 QLabel 的字体
        }
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    FontSelector w;
    w.show();
    return app.exec();
}

3.限制字体选项
可以使用 setOptions() 限制用户选择的字体类型。例如,只允许用户选择等宽字体:

QFontDialog fontDialog(this);
fontDialog.setOptions(QFontDialog::MonospacedFonts);

4.监听字体变化
如果希望在用户调整字体时实时更新 UI,可以使用 currentFontChanged 信号:

QFontDialog *fontDialog = new QFontDialog(this);
connect(fontDialog, &QFontDialog::currentFontChanged, [](const QFont &font) {
    qDebug() << "当前字体:" << font.family();
});
fontDialog->open();

三、QFontDialog的选项

QFontDialog 提供了一些选项,可以使用 setOptions() 方法进行设置:
在这里插入图片描述
示例:

QFontDialog fontDialog(this);
fontDialog.setOptions(QFontDialog::NoButtons | QFontDialog::MonospacedFonts);
fontDialog.exec();

四、完整示例

MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    setWindowTitle("字体对话框测试"); 

    m_pGlayout = new QGridLayout(this);
    m_pFontButton = new QPushButton("调用字体对话框", this);

    m_pFontLineedit = new QLineEdit(this);
    m_pFontLineedit->setText("今天天气挺好!");

    m_pGlayout->addWidget(m_pFontButton, 0, 0);
    m_pGlayout->addWidget(m_pFontLineedit, 0, 1);

    connect(m_pFontButton, &QPushButton::clicked, this, &MainWindow::dispFontFunc);
}

void MainWindow::dispFontFunc()
{
    bool isBool = false;

    QFont font = QFontDialog::getFont(&isBool);
    if (isBool) {
        m_pFontLineedit->setFont(font);
    }
}

在这里插入图片描述

【QT开发】字体选择对话框QFontDialog类详解及实战应用 QFontDialog是Qt提供的一个功能强大且灵活的字体选择对话框类,通过本篇文章的学习,你应该对QFontDialog有了全面的理解,能够在自己的项目中正确使用它。QFontDialog在用户界面中帮助你更好地管理字体选择,实现交互式和响应式的应用程序,有助于创建用户友好和高效的文本编辑器、设计工具、报告生成器等应用场景。 阅读详情

相关推荐

QFontDialog开发详解

类是 Qt 框架中用于选择字体的对话框类。它允许用户选择字体的各种属性,如字体名称、字号、粗体、斜体等。以下是。

啊渊的专栏 503

QFontDialog----简介

1、QFontDialog:提供了一种选择字体的对话框控件。 from PyQt5.Qt import * class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QFontDialog---功能作用的学习") self.resize(500, 500) self.setup_ui() def setup_u

laner__gg的博客 945

Zuken E3.series schematic/cable/Formboard 连载(1)

​ 1987-2001年,CIM-Team公司(德国)推出基于MS-DOS环境下运行的CAD软件DDS-schematic 2002年,在此基础上,推出基于windows环境下运行,应用于电气工程领域的E3.Series 2002-2006年,CIM-Team公司成为Zuken公司(日本)的一家分公司,实现电子电气系统的完整设计平台 覆盖电子、电气原理设计,三维机柜设备布局与配线设计,线缆线束设计及其各类生产报表文档生成的完整设计流程

u010930036的博客 2504

Qt 字体对话框 QFontDialog 获取字体

#include <QFontDialog> // 字体对话框 void MyWidget::on_pushButton_3_clicked() { // ok用于标记是否按下了“OK”按钮 bool ok; QFont font = QFontDialog::getFont(&ok, this); // 如果按下“OK”按钮,那么让“字体对话框”按钮使用新字体 // 如果按下“Cancel”按钮,那么输出信息 if (ok) ui-&g

超级大洋葱的博客 2922

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

【操作系统】 Operation System 第一章:概述

B站 陈渝老师 清华大学 https://www.bilibili.com/video/av6538245?from=search&seid=436175425155932048 相关资料(源自B站下方评论区) https://www.shiyanlou.com/courses/221 配套上机实验地址 https://b23.tv/av18273642/p1 这个适合跨考和基础薄弱的 h...

iwanderu的博客 4万+

QFontDialog

QFontDialog

weixin_43756295的博客 414

外部ADC之AD7949——14bit、8通道、250k

在实际项目中,仅靠单片机内部的ADC采样,很有可能达不到实际采样精度,这个时候就需要外接外部ADC芯片进行采样,这些外部ADC一般都是SPI接口或者是并口。单片机通过SPI接口或并口读写芯片内部寄存器,配置参考极性、采样通道、低通滤波器带宽、基准电压源、通道序列器等。本文主要对ADI家的14bit、8通道、250k的ADC7949做一个总结,这款ADC在实际项目中使用,采样精度达到要求,读取时序有点点绕,但是是一款十分常用的ADC芯片。就是价格不太友好哈哈,一块芯片快60。

cyaya6的博客 6715

【Qt开发】Qt窗口(九) -> QFontDialog 字体对话框

本文介绍了Qt框架中的QFontDialog字体选择对话框组件。QFontDialog提供了标准化的字体选择功能,包括字体族、样式、大小选择及实时预览,并支持高级选项如字体效果和过滤机制。该组件设计灵活,可自定义对话框行为和外观,同时兼顾跨平台一致性与原生体验。通过信号槽机制,QFontDialog能轻松与应用集成,支持模态和非模态使用场景。文章还提供了基础代码示例,展示了如何调用字体对话框并获取用户选择。QFontDialog体现了Qt框架隐藏复杂性同时保留扩展性的设计哲学,为开发者提供了高效可靠的字体选

枫叶丹4的博客 2194

5分钟搞定!用OpenCV实现全景图像柱面展开的保姆级教程(附完整代码)

本文提供了一份使用OpenCV实现全景图像柱面展开的详细教程。通过清晰的数学原理讲解和分步代码演示,指导读者快速掌握从等距柱状投影全景图到平面展开图的核心转换方法,并涵盖性能优化、参数调整及透视视图扩展等实用技巧,适合图像处理爱好者和开发者实践。

sony5的博客 573

一层一责,一聚合一包:DDD分层架构下的微服务代码模型、三重边界与服务数据协作

领域模型画得再清楚,落不进代码也是空谈。本文以一个可运行的客户中心微服务为线索,先对比整洁架构、六边形架构与DDD分层架构,指出三者共同守护的那条隔离核心业务的红线;再把DDD分层落成四个一级目录、以聚合为单位分包、一个聚合一个仓储的代码模型,拆解实体、聚合根、值对象、领域事件、领域服务与仓储的设计要点;随后厘清逻辑、物理、代码三重边界,并用检查器实测:干净代码零越界,拆出积分聚合时领域代码无需改动;注入九处越界后,必须先重构才能拆分。最后梳理服务调用三场景与PO、DO、DTO、VO的协作。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 177万+

Qt应用开发(基础篇)——字体选择器 QFontDialog

类继承于QDialog,是一个设计用来选择字体的对话框部件。对话框窗口QDialog字体选择对话框,设计用来让用户选择某一种字体,一般用于文本编辑窗口、标签显示和一些需要文本输入的场景。你可以直接使用静态函数打开对话框,并初始化一些参数,选择完字体之后,根据函数返回值得到QFont封装好的字体属性。或者bool ok;

波塞冬的博客 1559

FFmpeg入门详解之110:RTSP协议讲解

TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。正在上传…重新上传取消RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断(\r\n:10,13:0x0A,0x0D),包括消息类型、消息头、消息体和消息长。

福优学苑@音视频+流媒体 2529

Go-Qt5开发之对话框QFontDialog(21)

Go-Qt5开发之QFontDialog案例说明demo.go 案例说明 QFontDialog 对话框用以选择字体; 在这个例子中,我们创建了一个按钮和一个标签,通过QFontDialog来改变标签的字体。 demo.go package main import ( "github.com/therecipe/qt/core" "github.com/therecipe/qt/gui"...

清风冷吟 313

在 SAP BTP Cloud Foundry 环境中开发 SAP HANA 的完整实战路线图

SAP HANA Cloud迁移路径解析:从本地到云原生的数据库现代化 本文梳理了SAP HANA在Cloud Foundry环境中的架构定位和实施路径,针对不同起点的项目提供迁移建议。核心内容包括: SAP HANA Cloud在Cloud Foundry中的双重角色:既作为平台服务提供数据库实例,又通过HDI容器管理MTA应用中的数据库工件。 针对四类典型项目起点的迁移策略: 绿地项目:直接采用CAP+SAP HANA Cloud组合 已有HANA service或XS advanced项目:需对照兼容

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 266

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

QT开发详解之对话框应用详解控件使用(二)

对话框应用介绍 QT对话框主要有 QFileDialog(文件对话框),QcolorDialog(颜色对话框),QFontDialog (字体对话框),QinputDialog(输入对话框),QMessageBox(消息框)。 1,QFileDialog 对话框 若要打开一个文件,可调用静态函数 QFileDialog::getOpenFileName() 可以打开一个或多个文件 //打开一个文件 QString TestDialog::OpenOneFile(...

编程大魔王 451

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Qt5开发及实例学习之标准字体对话框类QFontDialog:选择字体设置文本编辑器

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33943836的博客 347

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

QT中,QFileDialog,QColorDialog,QFontDialog,QInputDialog对话框的简单使用

实现BuiltInDialog.cpp。定义BuiltInDialog.h。

m0_48568884的博客 162

带你0到1之QT编程:十六、三种框架自带Dialog,助你在开发一臂之力

“QT开发必备:掌握最简单的各类应用例子!”

weixin_68122199的博客 647

Qt 字体选择

Qt 提供QFontDialog类用于选择字体的各种属性,功能很完善,注意不需要二次开发该功能

Finull1的博客 583

qt 中各种常用对话框

QFileDialog   QColorDialog   QFontDialog   QInputDialog   QMessageBox

du_bingbing的博客 440

qt的字体和颜色设置对话框

qt提供了方便的字体的颜色修改的对话框类。1、设置颜色 void ChatMenu::setMyColor() { QColor color = QColorDialog::getColor(Qt::white, this); QString msg = QString("rgb(%1, %2, %3)").arg(QString::number(color.red()), QStr

Linux痞子 3644

【从零开始的Qt开发指南】(十五)Qt窗口之对话框终极指南:从分类到实战,解锁交互设计新高度

本文全面介绍了Qt对话框的开发与应用。首先阐述了对话框作为轻量交互载体的核心概念、继承体系及典型应用场景。随后详细讲解了三种对话框类型:模态对话框(exec()调用)、非模态对话框(show()调用)和混合属性对话框的特点与适用场景。重点剖析了Qt五大内置对话框(QMessageBox、QColorDialog、QFileDialog、QFontDialog、QInputDialog)的功能特性与API使用,并提供了丰富的代码示例。

2301_79248256的博客 1963

QT中的各种对话框

摘要:本文介绍了Qt框架中对话框的使用方法。主要内容包括:1)QDialog基本用法,展示如何创建自定义对话框;2)模态与非模态对话框的区别及实现方式;3)常用标准对话框类型,如QMessageBox(消息框)、QColorDialog(颜色选择)、QFileDialog(文件选择)和QFontDialog(字体选择)等;4)各类对话框的常用方法和实际应用示例。

2301_79389054的博客 816

QT_QFontDialog类字体对话框

QT_QFontDialog类字体对话框学习记录,后续查阅

前端开发工程师 247

QT中常见的几种对话框

一 qt对话框类部件 对于对话框的功能,在GUI图形界面开发过程中,使用是非常多,那么,在QT中也提供了丰富的对话框架类 The QDialog class is the base class of dialog windows. QDialog 是所有对话框的基类 主要被这些类继承:QColorDialog, QErrorMessage, QFileDialog, QFontDialog, QInputDialog, QMessageBox, QProgressDialog, 1.1 QC

cat_eat_fish 1412
上一篇: Qt开发:QInputDialog的使用
下一篇: Qt开发:双缓冲机制
TechNomad
博客等级 码龄2年 787粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值