1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
# -*- coding: utf-8 -*-
# Standard library imports
import sys
# Third party imports
from qtpy import QtCore, QtWidgets
from six import unichr
# Local imports
import qtawesome as qta
class AwesomeExample(QtWidgets.QDialog):
def __init__(self):
super(AwesomeExample, self).__init__()
# Get icons by name.
fa_icon = qta.icon('fa.flag')
fa_button = QtWidgets.QPushButton(fa_icon, 'Font Awesome!')
asl_icon = qta.icon('ei.asl')
elusive_button = QtWidgets.QPushButton(asl_icon, 'Elusive Icons!')
# Styling
styling_icon = qta.icon('fa.music',
active='fa.legal',
color='blue',
color_active='orange')
music_button = QtWidgets.QPushButton(styling_icon, 'Styling')
# Toggle
toggle_icon = qta.icon('fa.home', selected='fa.legal',
color_off='black',
color_off_active='blue',
color_on='orange',
color_on_active='yellow')
toggle_button = QtWidgets.QPushButton(toggle_icon, 'Toggle')
toggle_button.setCheckable(True)
# Render a label with this font
label = QtWidgets.QLabel(unichr(0xf19c) + ' ' + 'Label')
label.setFont(qta.font('fa', 16))
# Stack icons
camera_ban = qta.icon('fa.camera', 'fa.ban',
options=[{'scale_factor': 0.5,
'active': 'fa.legal'},
{'color': 'red', 'opacity': 0.7}])
stack_button = QtWidgets.QPushButton(camera_ban, 'Stack')
stack_button.setIconSize(QtCore.QSize(32, 32))
# Spin icons
spin_button = QtWidgets.QPushButton(' Spinning icon')
spin_icon = qta.icon('fa.spinner', color='red',
animation=qta.Spin(spin_button))
spin_button.setIcon(spin_icon)
# Pulse icons
pulse_button = QtWidgets.QPushButton(' Pulsing icon')
pulse_icon = qta.icon('fa.spinner', color='green',
animation=qta.Pulse(pulse_button))
pulse_button.setIcon(pulse_icon)
# Stacked spin icons
stack_spin_button = QtWidgets.QPushButton('Stack spin')
options = [{'scale_factor': 0.4,
'animation': qta.Spin(stack_spin_button)},
{'color': 'blue'}]
stack_spin_icon = qta.icon('ei.asl', 'fa.square-o',
options=options)
stack_spin_button.setIcon(stack_spin_icon)
stack_spin_button.setIconSize(QtCore.QSize(32, 32))
# Stack and offset icons
saveall = qta.icon('fa.save', 'fa.save',
options=[{'scale_factor': 0.8,
'offset': (0.2, 0.2),
'color': 'gray'},
{'scale_factor': 0.8}])
saveall_button = QtWidgets.QPushButton(saveall, 'Stack, offset')
# Layout
vbox = QtWidgets.QVBoxLayout()
widgets = [fa_button, elusive_button, music_button, toggle_button,
stack_button, saveall_button, spin_button, pulse_button,
stack_spin_button, label]
for w in widgets:
vbox.addWidget(w)
self.setLayout(vbox)
self.setWindowTitle('Awesome')
self.show()
def main():
app = QtWidgets.QApplication(sys.argv)
# Enable High DPI display with PyQt5
if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'):
app.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps)
QtCore.QTimer.singleShot(10000, app.exit)
_ = AwesomeExample()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
|