pyqt中使用font awesome字体的两种方法
1、使用第三方库文件:qtawesome,安装方法:pip install QtAwesome
例子:

# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# Name: 使用第三方库:qtawesome库
# Description:
# Author: lgk
# Date: 2018/5/18
#-------------------------------------------------------------------------------
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
import qtawesome as qta
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
mainWidget = QWidget()
layout = QVBoxLayout(mainWidget)
icon1 = qta.icon('fa.music', scale_factor = 1, color='blue')
btn1 = QPushButton(icon1, 'Icon + Text')
font=QFont(btn1.font())
font.setPointSize(30)
btn1.setFont(font)
btn2 = QPushButton(unichr(0xf101))
btn2.setFont(qta.font('fa', 50))
layout.addWidget(btn1)
layout.addWidget(btn2)
self.setCentralWidget(mainWidget)
btn1.clicked.connect(quit)
def main():
app = QApplication(sys.argv)
mainWnd = MyWindow()
mainWnd.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
2、不使用第三方库文件,要求在当前目录下必需有字体文件:fontawesome-webfont.ttf
例子:

# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# Name: 不使用第三方库
# Description: 在当前目录下必需有字体文件:fontawesome-webfont.ttf
# Author: lgk
# Date: 2018/5/18
#-------------------------------------------------------------------------------
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MyWindow(QMainWindow):
css = """
QToolButton{{
border: None;
}}
"""
def __init__(self):
super(MyWindow, self).__init__()
self.setStyleSheet(self.css.format())
fontId = QFontDatabase.addApplicationFont("fontawesome-webfont.ttf")
fontName = QFontDatabase.applicationFontFamilies(fontId)[0]
self.font = QFont(fontName, 30)
btn = QToolButton(self)
btn.setToolButtonStyle(Qt.ToolButtonIconOnly)
btn.setFont(self.font)
btn.setText(unichr(0xf101))
self.setCentralWidget(btn)
btn.clicked.connect(quit)
def main():
app = QApplication(sys.argv)
mainWnd = MyWindow()
mainWnd.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
浙公网安备 33010602011771号