HOME/Articles/

pyqt example AwesomeFont (snippet)

Article Outline

Python pyqt (gui) example 'AwesomeFont'

Modules used in program:

  • import sys

AwesomeFont

Python pyqt example: AwesomeFont

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
Created on 2017年3月30日
@author: Irony."[讽刺]
@site: https://pyqt5.com , https://github.com/892768447
@email: [email protected]
@file: AwesomeFont
@description: 
'''

__Author__ = "By: Irony.\"[讽刺]\nQQ: 892768447\nEmail: [email protected]"
__Copyright__ = "Copyright (c) 2017 Irony.\"[讽刺]"
__Version__ = "Version 1.0"

import sys

from PyQt5.QtGui import QFontDatabase, QFont
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout,\
    QScrollArea, QPushButton

from Lib.FontAwesome import FontAwesomes  # @UnresolvedImport


class ScrollArea(QScrollArea):

    def __init__(self):
        super(ScrollArea, self).__init__()
        self.setWindowTitle("FontAwesome Fonts")
        self.window = QWidget(self)
        self.setWidget(self.window)

        layout = QGridLayout(self.window)
        fonts = list(FontAwesomes.alls().items())  # 786个 131*6
        print(fonts)

        for row in range(131):
            for col in range(6):
                #         print(row, col, row * 6 + col)
                layout.addWidget(QPushButton(
                    ": ".join(fonts[row * 6 + col]),
                    self.window,
                    minimumHeight=33,
                    font=QFont("FontAwesome", 14)),
                    row, col, 1, 1)

        self.showMaximized()

    def resizeEvent(self, event):
        super(ScrollArea, self).resizeEvent(event)
        self.window.resize(self.width(), self.height() * 4)


app = QApplication(sys.argv)
app.setStyleSheet("""QPushButton:hover {
    color: green;
}
QPushButton:pressed {
    color: red;
}
""")

QFontDatabase.addApplicationFont(
    "Data/Fonts/fontawesome-webfont.ttf")

window = ScrollArea()

window.show()
sys.exit(app.exec_())