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里的字體。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM