QT_QFontDialog类字体对话框

文章目录

QT_QFontDialog类字体对话框

QFontDialog 是 Qt 框架中用于让用户选择字体(包括字体族、大小、样式等)的标准对话框组件,继承自 QDialog,属于 Qt Widgets 模块。

功能与使用方式

静态方法快速调用

最常用的是 QFontDialog::getFont(),它会弹出一个模态对话框,用户选择后返回一个 QFont 对象和一个布尔值(表示是否点击"确定")。

实例化自定义对话框

也可以创建 QFontDialog 对象,通过 exec() 或 open() 显示,并连接 currentFontChanged 信号实现实时预览。

支持选项配置

可通过 FontDialogOption 枚举控制对话框行为,例如:

  • DontUseNativeDialog:强制使用 Qt 自绘界面而非系统原生对话框。
  • NoButtons:隐藏"确定"和"取消"按钮,适合嵌入自定义界面。
  • ScalableFonts:仅显示可缩放字体。

代码示例

cpp 复制代码
#include <QFontDialog>
#include <QFont>

bool ok;
QFont font = QFontDialog::getFont(&ok, QFont("Arial", 12), this, "选择字体");
if (ok) {
    // 用户点击了"确定",font 包含所选字体
    myLabel->setFont(font);
} else {
    // 用户点击了"取消"
}

使用案例

dialog.h

cpp 复制代码
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QPushButton>
#include <QFontDialog>
#include <QGridLayout>
#include <QLineEdit>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();
private:
    QGridLayout *glayout;
    QPushButton *fontbutton;
    QLineEdit *fontlineedit;
private slots:
    void displayFontFunc();
};
#endif // DIALOG_H

dialog.cpp

cpp 复制代码
#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(u8"字体对话框测试");
    glayout = new QGridLayout(this);

    fontbutton = new QPushButton(u8"调用字体对话框");

    fontlineedit = new QLineEdit;

    fontlineedit->setText(u8"天王盖地虎");

    glayout->addWidget(fontbutton, 0, 0);
    glayout->addWidget(fontlineedit, 0, 1);
    connect(fontbutton, SIGNAL(clicked()), this, SLOT(displayFontFunc()));

}
Dialog::~Dialog()
{
}

void Dialog::displayFontFunc(){
    bool isbool;
    QFont font = QFontDialog::getFont(&isbool);

    if (isbool) {
        fontlineedit->setFont(font);
    }
}

效果:

相关推荐
czq_26867194873 小时前
Python打卡第46天
开发语言·python
宛 禾5 小时前
Qt 事件系统完全指南:从事件循环到实战避坑
qt
Evand J6 小时前
【MATLAB例程介绍】(17)永磁同步电机(PMSM)基于自适应无迹卡尔曼滤波(AUKF)的电流噪声在线估计。测量噪声协方差自适应与转速估计对比仿真
开发语言·matlab·卡尔曼滤波·无迹卡尔曼滤波·pmsm·电机滤波
BaiPeter7 小时前
ZPL文件预览
开发语言·c++
噢,我明白了12 小时前
JAVA中的一些基础应用知识点
java·开发语言
时间的拾荒人13 小时前
Redis 入门详解:核心特性、重要文件与全局命令实战
开发语言·redis·面试
敲上瘾13 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
码途行者14 小时前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
旖旎夜光15 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
你看我名字15 小时前
产品参数昨天还对,今天已过期:数眼智能与大模型应用如何做资料版本校验
开发语言·架构