如何在样式表中使用非标准自定义字体?
How to use Non-Standard Custom Font with Stylesheets?
我有一个 PyQt4
应用程序,它使用以下代码由外部 .qss
文件设置样式:
...
app = QtGui.QApplication(sys.argv)
stylesheet = open('mystylesheet.qss').read()
app.setStyleSheet(stylesheet)
...
通常,我会在 .qss
文件中指定我喜欢的字体类型,这样使用:
QMainWindow
{
font-family:arial;
font-size:14px;
}
但是,现在我想知道是否可以分配我从互联网下载的自定义字体(例如,DroidSansMono(True Type 字体))而不是 windows标准字体?
注意:我使用的是 Windows XP SP3 32 位,Python 2.7
更新 1:
基于 Ekhumoro 的回答:
我可以使用下载的自定义字体,方法是在加载 Stylesheet
之前将其添加到字体数据库:
QtGui.QFontDatabase.addApplicationFont("Resources/Mf Wedding Bells.ttf")
之后,我可以像这样简单地使用我刚刚添加到样式表中的字体名称:
QLabel
{
font-family:Mf Wedding Bells;
font-size:16px;
}
而且有效!!!
这只是一个猜测,因为我自己无法测试,但您可以在设置样式表之前尝试loading the font:
app = QtGui.QApplication(sys.argv)
QtGui.QFontDatabase.addApplicationFont('path/to/font')
# or load the font data directly
# QtGui.QFontDatabase.addApplicationFontFromData(fontdata)
stylesheet = open('mystylesheet.qss').read()
app.setStyleSheet(stylesheet)
我有一个 PyQt4
应用程序,它使用以下代码由外部 .qss
文件设置样式:
...
app = QtGui.QApplication(sys.argv)
stylesheet = open('mystylesheet.qss').read()
app.setStyleSheet(stylesheet)
...
通常,我会在 .qss
文件中指定我喜欢的字体类型,这样使用:
QMainWindow
{
font-family:arial;
font-size:14px;
}
但是,现在我想知道是否可以分配我从互联网下载的自定义字体(例如,DroidSansMono(True Type 字体))而不是 windows标准字体?
注意:我使用的是 Windows XP SP3 32 位,Python 2.7
更新 1:
基于 Ekhumoro 的回答:
我可以使用下载的自定义字体,方法是在加载 Stylesheet
之前将其添加到字体数据库:
QtGui.QFontDatabase.addApplicationFont("Resources/Mf Wedding Bells.ttf")
之后,我可以像这样简单地使用我刚刚添加到样式表中的字体名称:
QLabel
{
font-family:Mf Wedding Bells;
font-size:16px;
}
而且有效!!!
这只是一个猜测,因为我自己无法测试,但您可以在设置样式表之前尝试loading the font:
app = QtGui.QApplication(sys.argv)
QtGui.QFontDatabase.addApplicationFont('path/to/font')
# or load the font data directly
# QtGui.QFontDatabase.addApplicationFontFromData(fontdata)
stylesheet = open('mystylesheet.qss').read()
app.setStyleSheet(stylesheet)