[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器

这篇具有很好参考价值的文章主要介绍了[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Qt系列教程总目录

该控件用于选择字体,在一些软件中经常有类似控件,如下:

Microsoft Office:

[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器,Qt,qt,C++,字体选择器,QFontComboBox

Photoshop:

[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器,Qt,qt,C++,字体选择器,QFontComboBox

QFontComboBox 继承于 QComboBox ,所以他有 QComboBox 大部分属性与成员,但也有自己特有的。

注意:

这里虽然说是 Font 选择器,实际上每次选择只对 Font 中的 family 进行了修改,不会改变其他字体属性。 但每次选择 QFontComboBox 会返回一个同时包含其他字体属性的 Font 对象,如果直接将该对象设置给文本,那么文本当前其他的字体属性会被覆盖。所以,这里注意做好处理,只将QFontComboBox 返回的 family 属性设置给文本。

3.2.1 创建 QFontComboBox

同样,他也支持通过拖拽控件创建,也可以在自定义代码中创建。

他只有一个构造函数:

QFontComboBox(QWidget *parent = nullptr);
~QFontComboBox();

默认构造函数QFontComboBox()创建一个空的字体选择器。

也可以传入一个QWidget对象指针,QFontComboBox(QWidget *parent),它允许将字体选择器嵌入到另一个QWidget中。

3.2.2 成员函数
1. 书写系统
void setWritingSystem(QFontDatabase::WritingSystem);
QFontDatabase::WritingSystem writingSystem() const;

setWritingSystem()成员函数用于设置字体选择器所使用的书写系统。它接受一个QFontDatabase::WritingSystem参数,指定Qt应该使用哪种书写系统。

书写系统(writingSystem) :书写系统包括一个或多个文字集和一系列规则,一个书写系统至少对应一种语言,可以用书写系统的符号集合和规则比如拼写规则、大小写等来表达对应的语言,如汉字、日文、罗马字等。

以下是一个示例使用setWritingSystem方法的代码片段:

QFontComboBox *fontCombo = new QFontComboBox(this);
fontCombo->setWritingSystem(QFontDatabase::SimplifiedChinese);

其中,QFontDatabase::WritingSystem 枚举了Qt支持的书写系统:

enum WritingSystem {
    Any,

    Latin,
    Greek,
    Cyrillic,
    Armenian,
    Hebrew,
    Arabic,
    Syriac,
    Thaana,
    Devanagari,
    Bengali,
    Gurmukhi,
    Gujarati,
    Oriya,
    Tamil,
    Telugu,
    Kannada,
    Malayalam,
    Sinhala,
    Thai,
    Lao,
    Tibetan,
    Myanmar,
    Georgian,
    Khmer,
    SimplifiedChinese,
    TraditionalChinese,
    Japanese,
    Korean,
    Vietnamese,

    Symbol,
    Other = Symbol,

    Ogham,
    Runic,
    Nko,

    WritingSystemsCount
};

默认值为QFontDatabase::Any ,表示支持平台系统所有的书写系统。

2. 字体过滤器
void setFontFilters(FontFilters filters);
FontFilters fontFilters() const;

setFontFilters成员函数允许开发人员指定字体选择器可以显示的字体。它接受一个QFontComboBox::FontFilters参数,该参数允许开发人员选择要允许的字体类型。例如,可以仅允许选择等宽字体,或仅允许选择粗体或斜体字体。

以下是一个示例使用setFontFilters方法的代码片段:

QFontComboBox *fontCombo = new QFontComboBox(this);
fontCombo->setFontFilters(QFontComboBox::MonospacedFonts);

其中,QFontComboBox::FontFilters 枚举了可选择的字体类型:

enum FontFilter {
    AllFonts = 0,
    ScalableFonts = 0x1,
    NonScalableFonts = 0x2,
    MonospacedFonts = 0x4,
    ProportionalFonts = 0x8
};

说明如下:

枚举 描述
QFontComboBox::AllFonts 0 显示所有字体
QFontComboBox::ScalableFonts 0x1 显示可缩放字体
QFontComboBox::NonScalableFonts 0x2 显示不可缩放字体
QFontComboBox::MonospacedFonts 0x4 显示等宽字体
QFontComboBox::ProportionalFonts 0x8 显示比例字体

缩放字体(ScalableFonts):是指可以按比例缩放而不会失去质量的字体。与点阵字体(BitmapFonts)相比,缩放字体可以在任何尺寸下保持线条的清晰度和平滑度,而不会像点阵字体一样在放大时变得模糊和失真。缩放字体通常用于显示需要在不同大小的显示器和不同分辨率的屏幕上按比例扩展的文本。它们的另一个优点是它们可以用来创建真正的平滑曲线,尤其是在大的字体尺寸下,这对于设计师和艺术家来说非常重要。

比例字体(ProportionalFonts):是指每一个字符都有不同的宽度。例如,在比例字体中,大写字母"O"的宽度比小写字母"i"的宽度要宽得多。比例字体通常用于文本编辑和排版,因为它可以更好地适应不同字母的宽度,从而提高文本的可读性。

等宽字体(MonospacedFonts):是指每一个字符都有相同的宽度。例如,在等宽字体中,大写字母"O"和小写字母"i"的宽度是相同的。等宽字体通常用于编程和数据展示,因为字符对于编程和数据处理来说是等价的,这种字体使得代码和表格更易于阅读和理解。

3. 当前字体

既然是和QComboBox 类似的选择器,就会有当前所选择的item这一属性。

void setCurrentFont(const QFont &f);
QFont currentFont() const;

setCurrentFont函数用于设置当前选中的字体。它接受一个QFont类型的参数,该参数指定要设置为当前字体的字体。例如:

QFont font("Arial", 12);
fontComboBox->setCurrentFont(font);

currentFont函数返回当前选中的字体。例如:

QFont font = fontComboBox->currentFont();
4. 信号

当字体被选择,列表当前值发生改变时,QFontComboBox会发出 currentFontChanged 信号。

void currentFontChanged(const QFont &f);

它包含一个QFont类型的参数,指定用户选择的新字体。

以下是一个示例使用currentFontChanged信号的代码片段:文章来源地址https://www.toymoban.com/news/detail-532332.html

QFontComboBox *fontCombo = new QFontComboBox(this);
connect(fontCombo, SIGNAL(currentFontChanged(const QFont &)), this, SLOT(onFontChanged(const QFont &)));

void onFontChanged(const QFont &font)
{
    // do something
}

到了这里,关于[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【实操干货】如何开始用Qt Widgets编程?(二)

    Qt 是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中,我们通过使用C++和Qt Widgets模块实现一个简

    2024年02月13日
    浏览(40)
  • 【实操干货】如何开始用Qt Widgets编程?(三)

    Qt 是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中,我们通过使用C++和Qt Widgets模块实现一个简

    2024年02月11日
    浏览(53)
  • 使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面的两种方法

    本页介绍如何使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面。Qt Designer是一个图形UI设计工具,可以作为独立的二进制文件(pyside6-designer)提供,也可以嵌入到Qt Creator IDE中。它在Qt Creator中的使用在Using Qt Designer中描述。 设计存储在.ui文件中,这是一种基于

    2024年02月07日
    浏览(48)
  • Qt5.12安装教程+组件选择MinGW+开源协议LGPL

    今天重装了一下QT,发现以前忽略的点,mark一下。 安装QT或者平时新建项目的时候,常常碰到组件选择界面,让人头疼。找到别人整理的文档,为了自己以后搞清楚,摘自https://www.cnblogs.com/lixuejian/p/10903088.html 如下图所示,安装Qt时有选择组件这一步,全部安装未免太占磁盘控

    2024年02月15日
    浏览(44)
  • 由于找不到Qt5widgets.dll,无法继续执行代码。重新安装程序可能会解决此问题。(尝试了多种方法最后通过这个方法解决)

            开发工具:visual studio2017         问题情况:目前已经生成了解决方案,此时点击.exe文件报错。 推测这种运行exe文件报系统错误的情况不论是Qt5Widget.dll或者是找不到类似的文件都是一个原因。         前提:已经正确安装qt。         报错原因:没有正确配置系统

    2024年02月05日
    浏览(72)
  • qt学习:QT对话框+颜色+文件+字体+输入

    目录 概述 继承图 QColorDialog 颜色对话框 QFileDialog 文件对话框 保存文件对话框 QFontDialog 字体对话框 QInputDialog 输入对话框 对于对话框的功能,在GUI图形界面开发过程,使用是非常多,那么Qt也提供了丰富的对话框类 QDialog是所有对话框的基类 QWidget  QDialog QColorDialog 颜色对话框

    2024年01月21日
    浏览(68)
  • QT | 设置字体颜色

    代码 运行效果 代码1 QTextEdit,设置某行颜色 运行效果1 代码2 QTextEdit中,某行显示当前时间,并设置颜色 运行效果2 代码3 QTextEdit中,一段文字显示不同颜色 代码思路:设一个颜色,写一段文字,设一个颜色,写一段文字; 建议使用这种思路,非常简单,比富文本简易多了,

    2024年02月13日
    浏览(44)
  • Qt 字体绘制

    1. 字体分类 字体根据数据存储的格式一般把字体分为两类,一类是点阵字体,一类是矢量字体。 点阵字体: 也叫位图字体,格式一般是 .fon 简单来说就是把文字保存为一张图片。一般早期的电脑使用这种方式显示文字。优点是显示速度相当快,比如使用cpu渲染的时候,只需

    2024年02月11日
    浏览(38)
  • Qt - QLabel设置字体颜色

    ** ** • 第一种,使用setPalette()方法如下: • 第二种,使用样式表如下: • 第三种,使用QStyle,在Qt Demo中有一个很好的讲解QStyle的例子,可以参考学习。 • 第四种,使用一些简单的HTML格式:

    2024年02月15日
    浏览(63)
  • Qt添加第三方字体

    最近开发项目时,据说不能用系统自带的微软雅黑字体,于是找一个开源的字体,思源黑体,这个是google和Adobe公司合力开发的可以免费使用。本篇记录一下Qt使用第三方字体的方式。字体从下载之家下载http://www.downza.cn/soft/266042.html。下载解压后有8种字体 代码实现 运行效果

    2024年02月16日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包