Python 在PyQt应用程序中加载数据
我一直在尝试在我的PyQt应用程序中使用FontAwesome中的图标。我已经下载了.ttf文件,并使用addApplicationFont方法将字体加载到我的应用程序中。我有一个QToolButton,我想从AwesomeFont中为它设置一个图标。我不知道如何从数据库中选择图标。附上代码以供参考:Python 在PyQt应用程序中加载数据,python,pyqt,pyqt4,font-awesome,Python,Pyqt,Pyqt4,Font Awesome,我一直在尝试在我的PyQt应用程序中使用FontAwesome中的图标。我已经下载了.ttf文件,并使用addApplicationFont方法将字体加载到我的应用程序中。我有一个QToolButton,我想从AwesomeFont中为它设置一个图标。我不知道如何从数据库中选择图标。附上代码以供参考: import sys from PyQt4 import QtGui, QtCore class Window(QtGui.QMainWindow): css = """
import sys
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
css = """
QToolButton{{
border: None;
}}
"""
def __init__(self):
super(Window, self).__init__()
font_id = QtGui.QFontDatabase.addApplicationFont("fontawesome-webfont.ttf")
if font_id is not -1:
font_db = QtGui.QFontDatabase()
self.font_styles = font_db.styles('FontAwesome')
self.font_families = QtGui.QFontDatabase.applicationFontFamilies(font_id)
for font_family in self.font_families:
self.font = font_db.font(font_family, self.font_styles.first(), 24)
self.home()
def home(self):
self.setStyleSheet(self.css.format())
btn = QtGui.QToolButton(self)
btn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
btn.setFont(self.font)
btn.setText('.....')
btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
self.show()
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
我会把我的解决方案放进去,以防将来有人需要它。有一个名为Qtawesome的pypi包,它让您只需几个简单的步骤即可加载字体 但是,如果有人不想使用第三方软件包,那么我已经用所有缺少的语句修改了上面的代码
import sys
from six import unichr
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
css = """
QToolButton{{
border: None;
}}
"""
def __init__(self):
super(Window, self).__init__()
font_id = QtGui.QFontDatabase.addApplicationFont("fontawesome-webfont.ttf")
if font_id is not -1:
font_db = QtGui.QFontDatabase()
self.font_styles = font_db.styles('FontAwesome')
self.font_families = QtGui.QFontDatabase.applicationFontFamilies(font_id)
for font_family in self.font_families:
self.font = font_db.font(font_family, self.font_styles.first(), 24)
self.home()
def home(self):
self.setStyleSheet(self.css.format())
btn = QtGui.QToolButton(self)
btn.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
btn.setFont(self.font)
btn.setText(unichr(int('e025', 16)))
btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
self.show()
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
您可以改为使用QtAwesome
https://pypi.org/project/QtAwesome/
您确定了解什么是fontawesome以及它是如何工作的吗?这显然是一种网络技术——看看。嘿,ekhumoro,发现了一个第三方软件包,让我们在PyQt中使用字体很棒的图标。这并不像我上面所做的那么简单,但这是可能的。谢谢你提供的信息…太好了!你能把它写进一个答案,这样其他人就可以从你的发现中受益吗?