GUI学习之十九——QFontComboBox学习总结

我们上一章学习了QComboBox的用法,这一章我们来看一下它的一个比较常用的子类:QFontComboBox()。

一.描述:

  QFontComboBox()是QComboBox()的一个子类,但是它的内容是不能被编辑的,主要是用来选择字体。

二.功能作用

  1.设置和获取当前的字体

QFontComboBox.setCurrentFont(self, f: QtGui.QFont)      #设置字体
QFontComboBox.currentFont()                             #获取字体——>QFont

注意的是当前显示的字体都是宋体的,即便选择了别的字体在文本框里显示效果都是宋体。

  2.设置字体过滤器

  由于控件提供能够选择的字体种类太多,我们可以用过滤器来过滤控件的提供选项

QFontComboBox.setFontFilters(self, filters: typing.Union[‘QFontComboBox.FontFilters‘, ‘QFontComboBox.FontFilter‘])
#type: ‘QFontComboBox.FontFilter‘
AllFonts = ...           #所有字体
ScalableFonts = ...      # 可缩放
NonScalableFonts = ...    # 不可缩放
MonospacedFonts = ...    # 等宽字体
ProportionalFonts = ...   # 比例字体

三.信号

  除了继承的父类信号外,QFontComboBox()还有另外一个信号

QFontComboBox.currentFontChanged(self, f: QtGui.QFont)

  信号还传递了选择的字体作为参数。我们可以这样使用

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.UI_test()

    def UI_test(self):
        fcb = QFontComboBox(self)
        fcb.resize(200,30)
        fcb.setEditable(False)   #一般情况字体选择控件是不能够被编辑的
        self.resize(500,300)
        self.fcb = fcb
        self.label = QLabel(self)
        self.label.move(100,100)
        self.label.setText(‘hello,你是谁?‘)
        fcb.currentFontChanged.connect(self.font_change)

    def font_change(self,font):
        self.label.setFont(font)
        self.fcb.setFont(font)
        pass
if __name__ == ‘__main__‘:
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

QFontComboBox()案例

  出来就是这个效果

  通过选择字体,改变了字体选择框和label里的字体。

原文地址:https://www.cnblogs.com/yinsedeyinse/p/10962326.html

时间: 2024-10-24 19:29:54

GUI学习之十九——QFontComboBox学习总结的相关文章

angular学习笔记(十九)

本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器,服务,一样,可以通过模块实例的directive的方法来创建指令: var someModule = angular.module('SomeModule',[]); someModule.directive('directiveName',function(){ return { link: f

C++语言学习(十九)——C++类型识别

C++语言学习(十九)--C++类型识别 一.C++类型识别简介 1.C++类型识别简介 C++是静态类型语言,其数据类型是在编译期就确定的,不能在运行时更改.C++语言中,静态类型是对象自身的类型,动态类型是指针(引用)所指向对象的实际类型.RTTI(Run-Time Type Information)即运行时类型识别,C++通过RTTI实现对多态的支持.为了支持RTTI,C++提供了一个type_info类和typeid与dynamic_cast两个关键字. 2.type_info结构体 t

Java基础学习笔记十九 IO

File IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作.当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作.因此我们把这种输入和

【转】JMeter学习(十九)JMeter测试MongoDB

JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接进行测试MongoDB,还有一种是写Java代码方式测试MongoDB性能. 第一种方法 1.编写Java代码,内容如下: package com.test.mongodb; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.UUID; import java.util.conc

[傅里叶变换及其应用学习笔记] 十九. 采样定理在音乐上的应用

采样定理在音乐上的应用 人可以听到20~20000Hz的声音,上限为20000Hz,即$\frac{p}{2} = 20000$,$p=40000$.那么采样率至少要为40000.CD的采样率采用44100(44.1kHz),据传,在采集模拟信号时采用44100,是因为这些采集的机器以该采样率设置时最为正常,而并非出于理论上的考虑. 在采样时,若采用低于40000的采样率,就会造成声音的高频部分混叠(alias),也有人把这个说成是“低频混叠了变为高频部分,而高频的部分被混叠为低频部分”,实际上

Java并发学习之十九——线程同步工具之Phaser

本文是学习网络上的文章时的总结.感谢大家无私的分享. JDK 1.7 加入了一个新的工具Phaser.Phaser的在功能上与CountDownLatch有部分重合. 以下使用Phaser类来同步3个并发任务. 这3个任务会在3个不同的目录和它们的子目录中搜索扩展名是.log的文件. 这个任务被分成3个步骤: 1. 在指定的目录和子目录中获得文件扩展名为.log的文件列表. 2. 在操控台打印结果. 在步骤1和步骤2的结尾我们要检查列表是否为空. 假设为空.那么线程直接结束执行并从phaser类

JMeter学习(十九)JMeter测试MongoDB

JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接进行测试MongoDB,还有一种是写Java代码方式测试MongoDB性能. 第一种方法 1.编写Java代码,内容如下: package com.test.mongodb; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.UUID; import java.util.conc

JAVA学习第二十九课(经常使用对象API)- String类

多线程告一段落,開始经常使用对象API的涉及,背也要背下来!.! 日后开发,遇见最多的对象是文字,也就是字符串 String类 字符串是一个特殊对象 字符串一旦初始化就不能够被改变 一.特点 public class Main { public static void main(String[] args) { Demo1(); System.out.println("--------------"); Demo2(); } /*演示字符串的第一种定义方式,并明白字符串常量池的特点*/

JAVA学习第十九课(java程序的异常处理 (二))

异常处理的捕捉形式: 这是可以对异常进行针对性处理的方式 六.try.catch的理解 具体格式: try { //需要被检测异常的代码 } catch(异常类 变量)//改变量用于接受发生异常的对象 { //处理异常的代码 } finally { //一定会被执行的代码 } 这三个代码块是一个整体. try是尝试,catch捕捉,finally最终化   什么时候用try&catch,什么时候用抛? 在定义功能时,如果这个问题你可以处理的了,那么就用try&&catch,处理不了