43- 输入和显示-字体选择下拉框QFontComboBox

字体选择下拉框QFontComboBox

PySide6专门定义了一个字体下拉列表框控件QFontComboBox,列表内容是操作系统支持的字体,这个控件主要用在工具栏中,用于选择字体。

from PySide6.QtWidgets import QFontComboBox

QFontComboBox(parent: Union[PySide6.QtWidgets.QWidget,NoneType] = None)-> None

QFontComboBox 方法

QFontComboBox 继承自QComboBox,因此具有QComboBox 的方法。

QFontComhoBox也有自己的方法主要有:

  • setCurrentFont(QFont)(设置当前的字体,槽函数)
  • currentFont()(获取当前字体)
  • setFontFilters(QFontComboBox.FontFilter)(设置字体列表的过滤器),其中字体过滤器可以取:
    • QFontComboBox.AllFonts(显示所有字体)
    • QFontComboBox.ScalableFonts(显示可缩放字体)
    • QFontComboBox,NonScalableFonts(显示不可缩放的字体)
    • QFontComboBox,MonospacedFonts(显示等宽字体)
    • QFontComboBox.ProportionalFonts(显示比例字体)

QFontComhoBox也有自己的信号:

QFontComhoBox的特有信号为currentFontChanged(QFont)当前字体更改时发送

QFontComboBox 例子

image-20230319025032022

# -*- coding: UTF-8 -*-
# File date: Hi_2023/2/28 23:02
# File_name: 03-QFontComboBox 例子.py


import sys
from PySide6.QtWidgets import *
from PySide6.QtGui import *
from PySide6.QtCore import *
import os

os.chdir(os.path.dirname(__file__))


class FontComboBoxDemo(QMainWindow):
    def __init__(self,*args,**kwargs):
        super(FontComboBoxDemo,self).__init__(*args,**kwargs)
        self.setWindowTitle("QFontComboBox案例")
        widget = QWidget()
        self.setCentralWidget(widget)
        layout = QVBoxLayout(widget)
        self.text_show = QTextBrowser()

        layout.addWidget(self.text_show)

        toolbar = self.addToolBar('toolbar')

        # 设置字体,all
        font = QFontComboBox()
        font.currentFontChanged.connect(lambda font: self.text_show.setFont(font))
        toolbar.addWidget(font)

        # 设置字体,仅限中文
        font2 = QFontComboBox()
        font2.currentFontChanged.connect(lambda font: self.text_show.setFont(font))
        font2.setWritingSystem(QFontDatabase.SimplifiedChinese)
        toolbar.addWidget(font2)

        # 设置字体,等宽字体
        font3 = QFontComboBox()
        font3.currentFontChanged.connect(lambda font: self.text_show.setFont(font))
        font3.setFontFilters(QFontComboBox.MonospacedFonts)
        toolbar.addWidget(font3)

        # 设置字体大小
        font_size_list =[str(i)for i in range(5,40,2)]
        combobox = QComboBox(self,minimumWidth=60)
        combobox.addItems(font_size_list)
        combobox.setCurrentIndex(-1)
        combobox.activated.connect(lambda x: self.set_fontSize(int(font_size_list[x])))
        toolbar.addWidget(combobox)

        # 加粗按钮
        buttonBold = QToolButton()
        buttonBold.setShortcut('Ctrl+B')
        buttonBold.setCheckable(True)
        buttonBold.setIcon(QIcon("./images/Bold.png"))
        toolbar.addWidget(buttonBold)
        buttonBold.clicked.connect(lambda: self.setBold(buttonBold))

        # 倾斜按钮
        buttonItalic = QToolButton()
        buttonItalic.setShortcut('Ctrl+I')
        buttonItalic.setCheckable(True)
        buttonItalic.setIcon(QIcon("./images/Italic.png"))
        toolbar.addWidget(buttonItalic)
        buttonItalic.clicked.connect(lambda: self.setItalic(buttonItalic))

        self.text_show.setText('显示数据格式\n textEdit \n Python')

    def setBold(self,button):
        if button.isChecked():
            self.text_show.setFontWeight(QFont.Bold)
        else:
            self.text_show.setFontWeight(QFont.Normal)
        self.text_show.setText(self.text_show.toPlainText())

    def setItalic(self,button):
        if button.isChecked():
            self.text_show.setFontItalic(True)
        else:
            self.text_show.setFontItalic(False)
        self.text_show.setText(self.text_show.toPlainText())

    def set_fontSize(self,x):
        self.text_show.setFontPointSize(x)
        self.text_show.setText(self.text_show.toPlainText())


if __name__ =="__main__":
    app = QApplication(sys.argv)
    w = FontComboBoxDemo()
    w.show()
    sys.exit(app.exec())

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值