如何从QFontDatabase中删除某些字体?

嗯嗯嗯嗯

我有一个程序可以从QFontDatabase中以随机选择的字体显示消息:

import sys

from PyQt5 import uic
from PyQt5.QtGui import QFont, QFontDatabase
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow


class MyWidget(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("main1.ui", self)

        db = QFontDatabase()
        family = random.choice(db.families())
        print(family)
        font = db.font(family, "", 72)
        self.label.setFont(font)
        self.run()

    def run(self):
        self.label.setText("message")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = MyWidget()
    ex.show()
    sys.exit(app.exec_())

问题如下:我意识到由于某些原因,我需要从数据库中删除大多数标准字体。
我已经阅读了QFont的文档,但找不到解决方法,也许错过了一些东西。也许从具有选定字体的文件夹中执行选择会更容易?
我怎样才能做到这一点?

永乐

什么是标准字体?由于没有分类,因此很难知道。因此,正如您所指示的,最好在其中放置字体的文件夹,然后随机选择其中一种字体,然后我们使用以下方法QFontDatabase::addApplicationFont()获取字体系列进行注册QFontDatabase::applicationFontFamilies()

├── fonts
│   ├── A.ttf
│   .
|   .
|   .
│   ├── ...
│   └── Z.ttf
├── main1.ui
└── main.py 

main.py

import os
import random
import sys

from PyQt5 import uic
from PyQt5.QtGui import QFont, QFontDatabase
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow


class MyWidget(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("main1.ui", self)

        current_dir = os.path.dirname(os.path.realpath(__file__))
        font_dir = os.path.join(current_dir, "fonts")

        files = os.listdir(font_dir)
        file = random.choice(files)
        print(file)

        id_ = QFontDatabase.addApplicationFont(os.path.join(font_dir, file))
        families = QFontDatabase.applicationFontFamilies(id_)
        family = random.choice(families)

        font = QFont(family, 72)
        self.label.setFont(font)
        self.run()

    def run(self):
        self.label.setText("message")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = MyWidget()
    ex.show()
    sys.exit(app.exec_())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在Windows 7中删除某些字体

来自分类Dev

如何从Firefox中删除字体

来自分类Dev

如何删除GIMP中的预装字体?

来自分类Dev

如何从xml文件中删除某些根?

来自分类Dev

如何删除WTForms子类中的某些字段?

来自分类Dev

如何从数据框中删除某些条件

来自分类Dev

如何从列表中删除某些元素?

来自分类Dev

如何删除WTForms子类中的某些字段?

来自分类Dev

如何从列表中删除某些值的对象?

来自分类Dev

如何根据条件删除某些组中的某些观测值

来自分类Dev

如何使用某些库将italic字体转换为pdf中的常规字体?

来自分类Dev

如何在Wordpress 25中删除或出列Google字体

来自分类Dev

如何删除Windows 7中仍在使用的字体?

来自分类Dev

如何使用 iText 7 删除 PDF 文件中的重复字体

来自分类Dev

如何从joomla 2.5中的文章中删除某些模块?

来自分类Dev

如何在SAS中删除组中的某些行

来自分类Dev

如何从joomla 2.5中的文章中删除某些模块?

来自分类Dev

如何在Elasticsearch中仅删除索引中的某些事件?

来自分类Dev

如何从文件中的多个单词中删除某些字符?

来自分类Dev

如何从我的 Java 代码中的数组中删除某些元素

来自分类Dev

如何在C++中删除列表中的某些元素

来自分类Dev

如何在 Rxjs 中删除 ReplaySubject 中的某些元素?

来自分类Dev

如何从列表中的列表中删除某些 int?

来自分类Dev

如何从数据框列的某些行中删除字符?

来自分类Dev

如何删除Parse中满足某些条件的行?

来自分类Dev

如何删除数据框R中的某些日期

来自分类Dev

如何删除数字中的某些数字,使获得的数字最小?

来自分类Dev

如何从字符串中删除某些字符?

来自分类Dev

如何在Thunderbird中删除(某些)Gmail文件夹

Related 相关文章

  1. 1

    无法在Windows 7中删除某些字体

  2. 2

    如何从Firefox中删除字体

  3. 3

    如何删除GIMP中的预装字体?

  4. 4

    如何从xml文件中删除某些根?

  5. 5

    如何删除WTForms子类中的某些字段?

  6. 6

    如何从数据框中删除某些条件

  7. 7

    如何从列表中删除某些元素?

  8. 8

    如何删除WTForms子类中的某些字段?

  9. 9

    如何从列表中删除某些值的对象?

  10. 10

    如何根据条件删除某些组中的某些观测值

  11. 11

    如何使用某些库将italic字体转换为pdf中的常规字体?

  12. 12

    如何在Wordpress 25中删除或出列Google字体

  13. 13

    如何删除Windows 7中仍在使用的字体?

  14. 14

    如何使用 iText 7 删除 PDF 文件中的重复字体

  15. 15

    如何从joomla 2.5中的文章中删除某些模块?

  16. 16

    如何在SAS中删除组中的某些行

  17. 17

    如何从joomla 2.5中的文章中删除某些模块?

  18. 18

    如何在Elasticsearch中仅删除索引中的某些事件?

  19. 19

    如何从文件中的多个单词中删除某些字符?

  20. 20

    如何从我的 Java 代码中的数组中删除某些元素

  21. 21

    如何在C++中删除列表中的某些元素

  22. 22

    如何在 Rxjs 中删除 ReplaySubject 中的某些元素?

  23. 23

    如何从列表中的列表中删除某些 int?

  24. 24

    如何从数据框列的某些行中删除字符?

  25. 25

    如何删除Parse中满足某些条件的行?

  26. 26

    如何删除数据框R中的某些日期

  27. 27

    如何删除数字中的某些数字,使获得的数字最小?

  28. 28

    如何从字符串中删除某些字符?

  29. 29

    如何在Thunderbird中删除(某些)Gmail文件夹

热门标签

归档