QFont如何select另一种字体?
How to select another type of font with QFont?
我正在尝试使用 PyQt5 为我的应用程序分配不同类型的文本字体,但我不知道如何为标准字体分配不同的字体,例如在我的应用程序中我只能分配它 'Roboto',但如果我想更改为 Roboto-MediumItalic,我不知道如何为其指定该字体类型,我是 python 和 pyqt5
的新手
QFontDatabase.addApplicationFont("Static/fonts/Roboto-Light.ttf")
label2.setFont(QFont('Roboto',12))
文件夹
您必须使用样式和 QFontDatabase 才能使用 Roboto-MediumItalic
。也可以通过QFont设置斜体字重样式
import os
import sys
from pathlib import Path
from PyQt5.QtCore import Qt, QDir
from PyQt5.QtGui import QFont, QFontDatabase
from PyQt5.QtWidgets import QApplication, QLabel
CURRENT_DIRECTORY = Path(__file__).resolve().parent
def load_fonts_from_dir(directory):
families = set()
for fi in QDir(directory).entryInfoList(["*.ttf"]):
_id = QFontDatabase.addApplicationFont(fi.absoluteFilePath())
families |= set(QFontDatabase.applicationFontFamilies(_id))
return families
def main():
app = QApplication(sys.argv)
font_dir = CURRENT_DIRECTORY / "Static" / "fonts"
families = load_fonts_from_dir(os.fspath(font_dir))
print(families)
db = QFontDatabase()
styles = db.styles("Roboto")
print(styles)
font = db.font("Roboto", "Medium Italic", 12)
# OR
# font = QFont("Roboto", pointSize=12, weight=QFont.Medium, italic=True)
label = QLabel(alignment=Qt.AlignCenter)
label.setFont(font)
label.setText("Hello world!!")
label.resize(640, 480)
label.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
我正在尝试使用 PyQt5 为我的应用程序分配不同类型的文本字体,但我不知道如何为标准字体分配不同的字体,例如在我的应用程序中我只能分配它 'Roboto',但如果我想更改为 Roboto-MediumItalic,我不知道如何为其指定该字体类型,我是 python 和 pyqt5
的新手QFontDatabase.addApplicationFont("Static/fonts/Roboto-Light.ttf")
label2.setFont(QFont('Roboto',12))
文件夹
您必须使用样式和 QFontDatabase 才能使用 Roboto-MediumItalic
。也可以通过QFont设置斜体字重样式
import os
import sys
from pathlib import Path
from PyQt5.QtCore import Qt, QDir
from PyQt5.QtGui import QFont, QFontDatabase
from PyQt5.QtWidgets import QApplication, QLabel
CURRENT_DIRECTORY = Path(__file__).resolve().parent
def load_fonts_from_dir(directory):
families = set()
for fi in QDir(directory).entryInfoList(["*.ttf"]):
_id = QFontDatabase.addApplicationFont(fi.absoluteFilePath())
families |= set(QFontDatabase.applicationFontFamilies(_id))
return families
def main():
app = QApplication(sys.argv)
font_dir = CURRENT_DIRECTORY / "Static" / "fonts"
families = load_fonts_from_dir(os.fspath(font_dir))
print(families)
db = QFontDatabase()
styles = db.styles("Roboto")
print(styles)
font = db.font("Roboto", "Medium Italic", 12)
# OR
# font = QFont("Roboto", pointSize=12, weight=QFont.Medium, italic=True)
label = QLabel(alignment=Qt.AlignCenter)
label.setFont(font)
label.setText("Hello world!!")
label.resize(640, 480)
label.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()