Qt6.5类库详解:QFontComboBox

哈喽大家好,欢迎关注公众号(20YC编程),有免费视频课程哦!


-今日内容-

1 QFontComboBox介绍

QFontComboBox是Qt框架中的一个字体选择类,它提供了一个下拉列表框,用于选择字体。

  • QFontComboBox的主要功能和特点:

  • 字体选择:QFontComboBox提供了一个字体选择器,用户可以从下拉列表中选择不同的字体。
  • 字体筛选:可以使用setFontFilters()方法来设置字体筛选器,根据特定的筛选条件显示可用的字体。
  • 当前字体:可以通过setCurrentFont()方法来设置当前字体,也可以使用currentFont()方法来获取当前选择的字体。
  • 信号监听:QFontComboBox提供了currentFontChanged()信号,当选择的字体发生变化时,可以监听并响应这个信号。
  • 如何使用QFontComboBox:

头文件:#include <QFontComboBox>

cmake:find_package(Qt6 REQUIRED COMPONENTS Widgets)

target_link_libraries(mytarget PRIVATE Qt6::Widgets)

qmake:QT += widgets

继承于:QComboBox

2 QFontComboBox默认风格显示例子:

#include <QFontComboBox>
m_pFontComboBox = new QFontComboBox(this);
m_pFontComboBox->setGeometry(35, 35, 280, 34);

3 QFontComboBox信号

// 当前字体改变时,发射该信号。
void currentFontChanged(const QFont &f)

4 QFontComboBox属性和状态

  • fontFilters字体过滤器:

fontFilters字体过滤器,主要目的是确定哪些字体会出现在QFontComboBox的下拉列表中。

QFontComboBox::FontFilters宏定义如下:

QFontComboBox::AllFonts 0 显示所有字体。(默认)

QFontComboBox::ScalableFonts 0x1 可缩放字体。

QFontComboBox::NonScalableFonts 0x2 不可缩放字体。

QFontComboBox::MonospacedFonts 0x4 单间距字体。

QFontComboBox::ProportionalFonts 0x8 比例字体。

// 访问函数
void setFontFilters(QFontComboBox::FontFilters filters)
QFontComboBox::FontFilters fontFilters() const/**** 例子: ****/
// 显示可缩放和不可缩放字体。
m_pFontComboBox->setFontFilters(QFontComboBox::ScalableFonts | QFontComboBox::NonScalableFonts);
  • currentFont当前字体:

// 访问函数
QFont currentFont() const
void setCurrentFont(const QFont &f)/**** 例子: ****/
m_pFontComboBox->setCurrentFont(QFont("宋体"));

5 QFontComboBox完整示例

  • 示例执行效果:

  • .h文件:

#ifndef IMAINWINDOW_H
#define IMAINWINDOW_H#include <QMainWindow>
#include <QFontComboBox>
#include <QLabel>class IMainWindow : public QMainWindow
{Q_OBJECTpublic:IMainWindow(QWidget *parent = nullptr);~IMainWindow();private slots:void slotCurrentFontChanged(const QFont &f);private:QLabel * m_pLabel1 {nullptr};QLabel * m_pLabel2 {nullptr};QLabel * m_pLabel3 {nullptr};QFontComboBox * m_pFontComboBox {nullptr};
};
#endif // IMAINWINDOW_H
  • .cpp文件:

#include "imainwindow.h"#include <QLabel>IMainWindow::IMainWindow(QWidget *parent): QMainWindow(parent)
{this->setWindowTitle("欢迎关注公众号(20YC编程)");this->setWindowFlags(Qt::CustomizeWindowHint|Qt::WindowMinMaxButtonsHint|Qt::WindowCloseButtonHint);this->resize(780, 380);// 创建QFontComboBox控件m_pFontComboBox = new QFontComboBox(this);m_pFontComboBox->setGeometry(35, 35, 280, 34);// 字体1:默认选择字体m_pLabel1 = new QLabel("字体1:默认选择字体", this);m_pLabel1->setGeometry(35, 75, 680, 32);// 字体2:选择字体 + 调整字体大小m_pLabel2 = new QLabel("字体2:选择字体 + 调整字体大小", this);m_pLabel2->setGeometry(35, 115, 680, 32);m_pLabel2->setStyleSheet("QLabel { color: green; }");// 字体3:选择字体 + 调整字体大小m_pLabel3 = new QLabel("字体3:选择字体 + 调整字体大小 + 斜体", this);m_pLabel3->setGeometry(35, 155, 680, 32);m_pLabel3->setStyleSheet("QLabel { color: red; }");connect(m_pFontComboBox, &QFontComboBox::currentFontChanged, this, &IMainWindow::slotCurrentFontChanged);m_pFontComboBox->setCurrentFont(QFont("宋体"));
}IMainWindow::~IMainWindow()
{
}void IMainWindow::slotCurrentFontChanged(const QFont &f)
{m_pLabel1->setFont(f);m_pLabel2->setFont(QFont(f.family(), 20));m_pLabel3->setFont(QFont(f.family(), 20, -1, true));
}
  • main.cpp文件:
#include "imainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);IMainWindow w;w.show();return a.exec();
}

-【End】-

喜欢本文章,记得点赞、分享、关注哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/317784.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统信UOS操作系统上扩容数据盘

原文链接&#xff1a;统信UOS操作系统上扩容数据盘 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在统信UOS操作系统上扩容数据盘的方法。在使用UOS的过程中&#xff0c;随着数据的不断增加&#xff0c;原有磁盘空间可能会变得不足&#xff0c;这时候就需要对数…

C++ DAY6 作业

1.用模板类写顺序表 #include <iostream>using namespace std;#define MAXSIZE 10 template <typename T> class Arr {T *data NULL;int len 0; public://构造函数Arr():data(new T){}Arr(T a,int len):data(new T(a)),len(len){}//析构函数~Arr(){delete data;}…

C语言文件操作(2)

目录 6. 文本文件和二进制文件 7. 文件读取结束的判定 7.1 被错误使用的feof 8. 文件缓冲区 6. 文本文件和二进制文件 根据数据的组织形式&#xff0c;数据文件被称为文本文件或者二进制文件。 数据在内存中以二进制的形式存储&#xff0c;如果不加转换的输出到外存&#xff…

Python for与while循环的介绍和对应练习题的巩固

for循环 重复执行同一段代码就是循环 循环列表 for val in list_name: list_num [1,2,3,4,5,6,7,8,9] for i in list_num:print(i)代码执行顺序 从上往下依次执行 遍历 通过某种顺序把某种集合所有元素都访问一遍 list_food{"火锅","烧烤","张…

微信公众号请求获取相关权限后端代码

用微信的东西&#xff0c;总要避免到各种与微信那边的交互。 1.首先要有个接口&#xff0c;证明你是服务端&#xff08;填写服务器配置&#xff09; 接入概述 | 微信开放文档 主代码 /*** 服务器配置验证* param* return*/PassTokenGetMapping("/giveWxCheck")publi…

一文讲清数据资产入表实操

《中共中央 国务院关于构建数据基础制度更好发挥数据要素作用的意见》已发布一年&#xff0c;数据资产化和入表已成为2023年的热门话题&#xff0c;随着2023年底国家数据局吹风《"数据要素x"三年行动计划&#xff08;2024-2026年&#xff09;》即将发布&#xff0c;这…

面试题:Linux命令大全

序号命令对应英文作用1ls [目录名]list查看当前目录下的内容2pwdprint work directory查看当前所在目录3cd [目录名]change directory切换目录4touch [文件名]touch如果文件不存在,创建文件5mkdir [目录名]make directory创建目录6rm [文件名]remove删除指定文件 ls 查看当前目…

LDD学习笔记 -- Linux内核模块

LDD学习笔记 -- 内核模块 简介LKM类型Static Linux Kernel ModuleDynamic Linux Kernel ModuleLKM编写语法 syntax详细描述内核头文件用户空间头文件Module Initialization FunctionModule Cleanup FunctionKeyword & Tag宏 __init __exitLKM入口注册Module Metadate&#…

成都谷达冠楠:抖店创业需要多少钱成本

随着互联网的发展&#xff0c;越来越多的人选择在网上开设自己的店铺&#xff0c;其中抖音小店因其独特的推广方式和巨大的流量优势&#xff0c;成为了许多人创业的首选。那么&#xff0c;开一家抖音小店需要多少成本呢?这是许多创业者关心的问题。 首先&#xff0c;我们需要明…

1.3 day3 IO进程线程

使用标准IO进行文件拷贝 #include <myhead.h> int main(int argc, const char *argv[]) {if(argc!3)//外部传参{printf("input error\n");}//定义两个文件指针FILE *fpNULL;FILE *cfpNULL;if((fpfopen(argv[1],"r"))NULL){perror("fopen error…

如何将图像数据转换为.mat文件,mat文件内是cell封装的struct格式的数据

在我看论文&#xff1a;《 Holistically-nested Edge Detection (HED) 》的时候&#xff0c;对论文中有关边缘结果的评价指标很感兴趣&#xff0c;于是我就研究了如何计算这些指标 如果有同样感兴趣或者有需要的小伙伴可以下载这里的代码&#xff1a;GitHub - xwjabc/hed: A P…

单片机原理及应用:独立式键盘控制LED与多功能按键识别

今天来介绍另一个外设——按键与LED的配合工作&#xff0c;与开关不同&#xff0c;按键需要注意消除抖动带来的影响&#xff0c;代码逻辑也会更复杂一写&#xff0c;下面先为大家介绍独立式键盘的相关知识。 单片机的独立式键盘指的是一种不依赖于计算机或其他外部设备的键盘输…