如何在样式表中使用非标准自定义字体?

Chr*_*ung 6 python fonts pyqt pyqt4 qtstylesheets

我有一个PyQt4应用程序,.qss使用以下代码由外部文件设置样式:

...
app = QtGui.QApplication(sys.argv)
stylesheet = open('mystylesheet.qss').read()
app.setStyleSheet(stylesheet)
...
Run Code Online (Sandbox Code Playgroud)

通常,我会在.qss文件中指定我喜欢的字体类型,如下所示:

QMainWindow
{
font-family:arial;
font-size:14px;
}
Run Code Online (Sandbox Code Playgroud)

但是,现在我想知道我是否可以分配一个我从互联网上下载的自定义字体(例如,DroidSansMono(True Type字体))而不是windows标准字体?

注意:我使用的是带有Python 2.7的Windows XP SP3 32位

更新1:

根据Ekhumoro回答:

我可以使用下载的自定义字体,在加载之前将其添加到字体数据库Stylesheet:

QtGui.QFontDatabase.addApplicationFont("Resources/Mf Wedding Bells.ttf")
Run Code Online (Sandbox Code Playgroud)

之后,我可以简单地使用我刚刚在样式表中添加的字体名称,如下所示:

QLabel
{
font-family:Mf Wedding Bells;
font-size:16px;
}
Run Code Online (Sandbox Code Playgroud)

它的工作原理!

ekh*_*oro 9

这只是猜测,因为我无法自己测试,但您可以在设置样式表之前尝试加载字体:

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)
Run Code Online (Sandbox Code Playgroud)