forked from spyder-ide/qtawesome
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.py
110 lines (86 loc) · 3.77 KB
/
example.py
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()