PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)

news2025/5/11 17:35:36

文章目录

  • 一、QFont常用方法
  • 二、常用方法总结
    • 1. 基础属性设置
    • 2. 高级样式控制
    • 3. 序列化与反序列化
    • 4. 字体信息获取
  • 三、应用实例

字体类QFont用于设置界面控件上显示的字体,它包含字体名称字体尺寸粗体字斜体字删除线上划线下划线字体间距等属性。

如果指定的字体在使用时没有对应的字体文件,Qt将自动选择最接近的字体,如果要显示的字符在字体中不存在,则字符会被显示为一个空心方框。

字体类在QtGui模块中,通过from PySide6.QtGui import QFont语句导入。

一、QFont常用方法

方法名称参数返回值说明
init-创建默认字体(继承应用默认设置)
initQFont-复制构造函数
initfamily:str, pointSize:int=-1, weight:int=-1, italic:bool=False-通过属性构造字体
bold()bool判断是否粗体
capitalization()QFont.Capitalization获取大写样式
defaultFamily()str获取当前样式提示的默认字体族
families()List[str]获取所有请求的字体族
family()str获取主字体族
fixedPitch()bool判断等宽字体
fromString(descrip:str)bool从字符串恢复字体设置
isCopyOf(f:QFont)bool判断是否完全拷贝
italic()bool判断斜体
kerning()bool判断是否启用字距调整
overline()bool判断上划线
pixelSize()int获取像素尺寸
pointSize()int获取磅值尺寸
setBold(enable:bool)None设置粗体状态
setCapitalization(caps)None设置大写样式
setFamily(family:str)None设置主字体族
setItalic(b:bool)None设置斜体状态
setPixelSize(pixelSize:int)None设置像素尺寸
setPointSize(pointSize:int)None设置磅值尺寸
setStyle(style:QFont.Style)None设置字体样式
setUnderline(enable:bool)None设置下划线
toString()str序列化为字符串
weight()QFont.Weight获取字重等级

二、常用方法总结

1. 基础属性设置

font = QFont()
font.setFamily("Arial")  # 设置字体族
font.setPointSize(12)    # 设置字号
font.setBold(True)       # 设置粗体
font.setItalic(True)     # 设置斜体

2. 高级样式控制

font.setCapitalization(QFont.AllUppercase)  # 全大写
font.setLetterSpacing(QFont.AbsoluteSpacing, 5)  # 字间距+5px
font.setStyleStrategy(QFont.NoAntialias)    # 禁用抗锯齿

3. 序列化与反序列化

font_str = font.toString()          # 保存为字符串
new_font = QFont()
new_font.fromString(font_str)       # 从字符串恢复

4. 字体信息获取

print(font.family())        # 输出"Arial"
print(font.exactMatch())    # 检查是否存在精确匹配

三、应用实例

import sys
from PySide6.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PySide6.QtGui import QFont

class FontDemo(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QVBoxLayout()
        
        # 基本字体设置
        label1 = QLabel("标准字体示例")
        font1 = QFont("Times New Roman", 14)
        label1.setFont(font1)
        
        # 高级样式
        label2 = QLabel("高级样式示例")
        font2 = QFont()
        font2.setFamily("Consolas")
        font2.setPointSize(16)
        font2.setBold(True)
        font2.setUnderline(True)
        font2.setLetterSpacing(QFont.PercentageSpacing, 150)  # 字间距150%
        label2.setFont(font2)
        
        # 序列化演示
        font_str = font2.toString()
        label3 = QLabel(f"序列化结果:{font_str}")
        
        # 反序列化恢复
        font3 = QFont()
        font3.fromString(font_str)
        label4 = QLabel("反序列化恢复的字体")
        label4.setFont(font3)
        
        layout.addWidget(label1)
        layout.addWidget(label2)
        layout.addWidget(label3)
        layout.addWidget(label4)
        self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = FontDemo()
    window.resize(400, 200)
    window.show()
    sys.exit(app.exec())

该示例创建了一个显示不同字体样式的窗口:

  1. 第一个标签使用Times New Roman 14pt常规字体
  2. 第二个标签使用Consolas 16pt加粗带下划线,字间距扩大50%
  3. 展示字体序列化字符串
  4. 从序列化字符串恢复字体并应用

运行效果包含:
• 不同字体族和字号

• 加粗、下划线样式

• 自定义字间距

• 字体设置的序列化/反序列化功能

程序运行结果如图:

代码运行效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宝塔服务安装使用的保姆级教程

宝塔介绍: 宝塔面板(BT Panel) 是一款 国产的服务器运维管理面板,主要用于简化 Linux/Windows 服务器的网站、数据库、FTP、防火墙等管理操作。它通过图形化界面(Web端)和命令行工具(bt 命令&a…

Linux平台下SSH 协议克隆Github远程仓库并配置密钥

目录 注意:先提前配置好SSH密钥,然后再git clone 1. 检查现有 SSH 密钥 2. 生成新的 SSH 密钥 3. 将 SSH 密钥添加到 ssh-agent 4. 将公钥添加到 GitHub 5. 测试 SSH 连接 6. 配置 Git 使用 SSH 注意:先提前配置好SSH密钥,然…

Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析

目录 1.前言 2.正文 2.1状态码 2.2HTTP与HTTPS的关系 2.3SSL协议 2.3.1对称加密 2.3.2非对称加密 2.3.3中间人攻击 2.3.4校验机制 2.3.4.1证书 2.3.4.2数字签名 1. 数字签名的生成过程 2. 数字签名的验证过程 2.4TLS协议(握手过程) 3.小结…

【基础IO下】磁盘/软硬链接/动静态库

前言: 文件分为内存文件和磁盘文件。磁盘文件是一个特殊的存在,因为磁盘文件不属于冯诺依曼体系,而是位于专门的存储设备中。因此,磁盘文件存在的意义是将文件更好的存储起来,一边后续对文件进行访问。在高效存储磁盘…

SpringBoot项目容器化进行部署,meven的docker插件远程构建docker镜像

需求:将Spring Boot项目使用容器化进行部署 前提 默认其他环境,如mysql,redis等已经通过docker部署完毕, 这里只讨论,如何制作springboot项目的镜像 要将Spring Boot项目使用docker容器进行部署,就需要将Spring Boot项目构建成一个docker镜像 一、手动…

【小记】excel vlookup一对多匹配

一个学生报四门课,输出每个学生课程 应用概述操作预处理数据计数指令 COUNTIFS进行一对多匹配 vlookup 应用概述 应用场景:学生报名考试,需要整理成指定格式,发给考试院。 一个学生最多报考四门 格式实例:准考证号 …

LeetCode热题100 两数之和

目录 两数之和题目解析方法一暴力求解代码 方法二哈希代码 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸🥸 C语言 🐿️🐿️🐿…

[春秋云镜] Brute4Road 仿真场景

文章目录 靶标介绍:知识点约束性委派攻击 外网redis主从复制base64提权 内网搭建代理wpcargo插件漏洞mssql弱口令SweetPotato提权远程桌面连接mimikatz抓取hash约束性委派攻击 参考文章 靶标介绍: Brute4Road是一套难度为中等的靶场环境,完成…

鸿蒙系统使用ArkTS开发语言支持身份证阅读器、社保卡读卡器等调用二次开发SDK

har库导入: { "license": "", "devDependencies": {}, "author": "", "name": "entry", "description": "Please describe the basic information.", &qu…

《Python星球日记》 第54天:卷积神经网络进阶

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、深度CNN架构解析1. LeNet-5(1998)2. AlexNet&#x…

《AI大模型应知应会100篇》第53篇:Hugging Face生态系统入门

第53篇:Hugging Face生态系统入门 ——从模型获取到部署的全流程实战指南 📌 摘要 在人工智能快速发展的今天,Hugging Face已成为自然语言处理(NLP)领域最具影响力的开源平台之一。它不仅提供丰富的预训练模型、强大…

【基于 LangChain 的异步天气查询2】GeoNames实现地区实时气温查询

目录 功能简介 一、创建GeoNames账号 1、进入官网 2、创建账号 二、运行代码 weather_runnable.py main.py 运行结果 功能简介 本文主要通过Langchain,结合GeoNames实现了地区温度的实时查询,并通过GPT-4o对温度进行一段简短的描述。 一、创建Ge…

服务器数据恢复—硬盘坏道导致EqualLogic存储不可用的数据恢复

服务器存储数据恢复环境&故障: 一台EqualLogic某型号存储中有一组由16块SAS硬盘组建的RAID5阵列。上层采用VMFS文件系统,存放虚拟机文件,上层一共分了4个卷。 磁盘故障导致存储不可用,且设备已经过保。 服务器存储数据恢复过程…

JAVA实战开源项目:智能学习平台系统 (Vue+SpringBoot) 附源码

本文项目编号 T 181 ,文末自助获取源码 \color{red}{T181,文末自助获取源码} T181,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

傅利叶十周年,升级核心战略:“有温度”的具身智能蓝图

5月9日,傅利叶十周年庆典暨首届具身智能生态峰会在上海正式召开。本次大会以“十年共创,具身成翼”为主题,汇聚了来自通用机器人与医疗康复领域的顶尖专家学者、合作伙伴与投资机构,共同探索具身智能在未来十年的技术应用与生态发…

AI安全之对抗样本攻击---FGSM实战脚本解析

一、对抗样本与FGSM的背景 在深度学习安全领域,对抗样本(Adversarial Examples)因其特殊的生成机制备受关注。2015年ICLR会议收录的里程碑式论文《Explaining and Harnessing Adversarial Examples》中,Goodfellow等学者首次系统…

《Python星球日记》 第50天:深度学习概述与环境搭建

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是深度学习?它与传统机器学习的区别1. 深度学习的定义2. 深…

linux搭建hadoop学习

linux搭建hadoop学习 下载安装包: 海外资源可能需要翻墙或者找国内资源 cd /opt wget https://dlcdn.apache.org/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz tar -zxvf hadoop-2.10.2.tar.gz mv hadoop-2.10.2 hadoop配置环境变量 # 在/etc/profile文件中添加下面内…

PyTorch API 8 - 工具集、onnx、option、复数、DDP、量化、分布式 RPC、NeMo

文章目录 torch.nn.inittorch.nn.attention工具集子模块 torch.onnx概述基于 TorchDynamo 的 ONNX 导出器基于TorchScript的ONNX导出器贡献与开发 torch.optim如何使用优化器构建优化器每个参数的选项执行优化步骤optimizer.step()optimizer.step(closure) 基类算法如何调整学习…

0基础 | STM32 | TB6612电机驱动使用

TB6612介绍及使用 单片机通过驱动板连接至电机 原因:单品机I/O口输出电流I小 驱动板:从外部引入高电压,控制电机驱动 电源部分 VM:电机驱动电源输入,输入电压范围建议为3.7~12V GND:逻辑电…