我可以实现随机字体选择吗?

Can I implement a random font selection?

我有一个程序可以在标签上显示一些消息(使用 QtDesigner):

from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow


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

    def run(self):
        self.label.setText('Message')


app = QApplication(sys.argv)
ex = MyWidget()
ex.show()
sys.exit(app.exec_())

此消息以我的标签的 QtDesigner、StyleSheet 中选定的字体显示:

问题是:如何让这个字体随机选择?可能吗? (完美案例:每次我 运行 我的程序都会以某种随机选择的字体显示我的消息)

您可以通过families() method of QFontDatabase, choose one randomly, build a QFont获取所有可用的族并在QLabel中设置:

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)

        db = QFontDatabase()
        family = random.choice(db.families())
        print(family)
        font = db.font(family, "", 72)
        # also random style:
        # style = random.choice(db.styles(family))
        # font = db.font(family, style, 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_())