1
#
!/usr/bin/env python
2
3![]()
4
#
############################################################################
5
#
#
6
#
# Copyright (C) 2010 Riverbank Computing Limited.
7
#
# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
8
#
# All rights reserved.
9
#
#
10
#
# This file is part of the examples of PyQt.
11
#
#
12
#
# $QT_BEGIN_LICENSE:BSD$
13
#
# You may use this file under the terms of the BSD license as follows:
14
#
#
15
#
# "Redistribution and use in source and binary forms, with or without
16
#
# modification, are permitted provided that the following conditions are
17
#
# met:
18
#
# * Redistributions of source code must retain the above copyright
19
#
# notice, this list of conditions and the following disclaimer.
20
#
# * Redistributions in binary form must reproduce the above copyright
21
#
# notice, this list of conditions and the following disclaimer in
22
#
# the documentation and/or other materials provided with the
23
#
# distribution.
24
#
# * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
25
#
# the names of its contributors may be used to endorse or promote
26
#
# products derived from this software without specific prior written
27
#
# permission.
28
#
#
29
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30
#
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31
#
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32
#
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33
#
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34
#
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35
#
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36
#
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37
#
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38
#
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39
#
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
40
#
# $QT_END_LICENSE$
41
#
#
42
#
############################################################################
43
44![]()
45
from
PyQt4
import
QtCore, QtGui
46![]()
47![]()
48
class
WidgetGallery(QtGui.QDialog):
49
def
__init__
(self, parent
=
None):
50
super(WidgetGallery, self).
__init__
(parent)
51![]()
52
self.originalPalette
=
QtGui.QApplication.palette()
53![]()
54
styleComboBox
=
QtGui.QComboBox()
55
styleComboBox.addItems(QtGui.QStyleFactory.keys())
56![]()
57
styleLabel
=
QtGui.QLabel(
"
&Style:
"
)
58
styleLabel.setBuddy(styleComboBox)
59![]()
60
self.useStylePaletteCheckBox
=
QtGui.QCheckBox(
"
&Use style's standard palette
"
)
61
self.useStylePaletteCheckBox.setChecked(True)
62![]()
63
disableWidgetsCheckBox
=
QtGui.QCheckBox(
"
&Disable widgets
"
)
64![]()
65
self.createTopLeftGroupBox()
66
self.createTopRightGroupBox()
67
self.createBottomLeftTabWidget()
68
self.createBottomRightGroupBox()
69
self.createProgressBar()
70![]()
71
styleComboBox.activated[str].connect(self.changeStyle)
72
self.useStylePaletteCheckBox.toggled.connect(self.changePalette)
73
disableWidgetsCheckBox.toggled.connect(self.topLeftGroupBox.setDisabled)
74
disableWidgetsCheckBox.toggled.connect(self.topRightGroupBox.setDisabled)
75
disableWidgetsCheckBox.toggled.connect(self.bottomLeftTabWidget.setDisabled)
76
disableWidgetsCheckBox.toggled.connect(self.bottomRightGroupBox.setDisabled)
77![]()
78
topLayout
=
QtGui.QHBoxLayout()
79
topLayout.addWidget(styleLabel)
80
topLayout.addWidget(styleComboBox)
81
topLayout.addStretch(
1
)
82
topLayout.addWidget(self.useStylePaletteCheckBox)
83
topLayout.addWidget(disableWidgetsCheckBox)
84![]()
85
mainLayout
=
QtGui.QGridLayout()
86
mainLayout.addLayout(topLayout, 0, 0,
1
,
2
)
87
mainLayout.addWidget(self.topLeftGroupBox,
1
, 0)
88
mainLayout.addWidget(self.topRightGroupBox,
1
,
1
)
89
mainLayout.addWidget(self.bottomLeftTabWidget,
2
, 0)
90
mainLayout.addWidget(self.bottomRightGroupBox,
2
,
1
)
91
mainLayout.addWidget(self.progressBar,
3
, 0,
1
,
2
)
92
mainLayout.setRowStretch(
1
,
1
)
93
mainLayout.setRowStretch(
2
,
1
)
94
mainLayout.setColumnStretch(0,
1
)
95
mainLayout.setColumnStretch(
1
,
1
)
96
self.setLayout(mainLayout)
97![]()
98
self.setWindowTitle(
"
Styles
"
)
99
self.changeStyle(
'
Windows
'
)
100![]()
101
def
changeStyle(self, styleName):
102
QtGui.QApplication.setStyle(QtGui.QStyleFactory.create(styleName))
103
self.changePalette()
104![]()
105
def
changePalette(self):
106
if
(self.useStylePaletteCheckBox.isChecked()):
107
QtGui.QApplication.setPalette(QtGui.QApplication.style().standardPalette())
108
else
:
109
QtGui.QApplication.setPalette(self.originalPalette)
110![]()
111
def
advanceProgressBar(self):
112
curVal
=
self.progressBar.value()
113
maxVal
=
self.progressBar.maximum()
114
self.progressBar.setValue(curVal
+
(maxVal
-
curVal)
/
100
)
115![]()
116
def
createTopLeftGroupBox(self):
117
self.topLeftGroupBox
=
QtGui.QGroupBox(
"
Group 1
"
)
118![]()
119
radioButton1
=
QtGui.QRadioButton(
"
Radio button 1
"
)
120
radioButton2
=
QtGui.QRadioButton(
"
Radio button 2
"
)
121
radioButton3
=
QtGui.QRadioButton(
"
Radio button 3
"
)
122
radioButton1.setChecked(True)
123![]()
124
checkBox
=
QtGui.QCheckBox(
"
Tri-state check box
"
)
125
checkBox.setTristate(True)
126
checkBox.setCheckState(QtCore.Qt.PartiallyChecked)
127![]()
128
layout
=
QtGui.QVBoxLayout()
129
layout.addWidget(radioButton1)
130
layout.addWidget(radioButton2)
131
layout.addWidget(radioButton3)
132
layout.addWidget(checkBox)
133
layout.addStretch(
1
)
134
self.topLeftGroupBox.setLayout(layout)
135![]()
136
def
createTopRightGroupBox(self):
137
self.topRightGroupBox
=
QtGui.QGroupBox(
"
Group 2
"
)
138![]()
139
defaultPushButton
=
QtGui.QPushButton(
"
Default Push Button
"
)
140
defaultPushButton.setDefault(True)
141![]()
142
togglePushButton
=
QtGui.QPushButton(
"
Toggle Push Button
"
)
143
togglePushButton.setCheckable(True)
144
togglePushButton.setChecked(True)
145![]()
146
flatPushButton
=
QtGui.QPushButton(
"
Flat Push Button
"
)
147
flatPushButton.setFlat(True)
148![]()
149
layout
=
QtGui.QVBoxLayout()
150
layout.addWidget(defaultPushButton)
151
layout.addWidget(togglePushButton)
152
layout.addWidget(flatPushButton)
153
layout.addStretch(
1
)
154
self.topRightGroupBox.setLayout(layout)
155![]()
156
def
createBottomLeftTabWidget(self):
157
self.bottomLeftTabWidget
=
QtGui.QTabWidget()
158
self.bottomLeftTabWidget.setSizePolicy(QtGui.QSizePolicy.Preferred,
159
QtGui.QSizePolicy.Ignored)
160![]()
161
tab1
=
QtGui.QWidget()
162
tableWidget
=
QtGui.QTableWidget(
10
,
10
)
163![]()
164
tab1hbox
=
QtGui.QHBoxLayout()
165
tab1hbox.setMargin(
5
)
166
tab1hbox.addWidget(tableWidget)
167
tab1.setLayout(tab1hbox)
168![]()
169
tab2
=
QtGui.QWidget()
170
textEdit
=
QtGui.QTextEdit()
171![]()
172
textEdit.setPlainText(
"
Twinkle, twinkle, little star,\n
"
173
"
How I wonder what you are.\n
"
174
"
Up above the world so high,\n
"
175
"
Like a diamond in the sky.\n
"
176
"
Twinkle, twinkle, little star,\n
"
177
"
How I wonder what you are!\n
"
)
178![]()
179
tab2hbox
=
QtGui.QHBoxLayout()
180
tab2hbox.setMargin(
5
)
181
tab2hbox.addWidget(textEdit)
182
tab2.setLayout(tab2hbox)
183![]()
184
self.bottomLeftTabWidget.addTab(tab1,
"
&Table
"
)
185
self.bottomLeftTabWidget.addTab(tab2,
"
Text &Edit
"
)
186![]()
187
def
createBottomRightGroupBox(self):
188
self.bottomRightGroupBox
=
QtGui.QGroupBox(
"
Group 3
"
)
189
self.bottomRightGroupBox.setCheckable(True)
190
self.bottomRightGroupBox.setChecked(True)
191![]()
192
lineEdit
=
QtGui.QLineEdit(
'
s3cRe7
'
)
193
lineEdit.setEchoMode(QtGui.QLineEdit.Password)
194![]()
195
spinBox
=
QtGui.QSpinBox(self.bottomRightGroupBox)
196
spinBox.setValue(
50
)
197![]()
198
dateTimeEdit
=
QtGui.QDateTimeEdit(self.bottomRightGroupBox)
199
dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime())
200![]()
201
slider
=
QtGui.QSlider(QtCore.Qt.Horizontal, self.bottomRightGroupBox)
202
slider.setValue(
40
)
203![]()
204
scrollBar
=
QtGui.QScrollBar(QtCore.Qt.Horizontal,
205
self.bottomRightGroupBox)
206
scrollBar.setValue(
60
)
207![]()
208
dial
=
QtGui.QDial(self.bottomRightGroupBox)
209
dial.setValue(
30
)
210
dial.setNotchesVisible(True)
211![]()
212
layout
=
QtGui.QGridLayout()
213
layout.addWidget(lineEdit, 0, 0,
1
,
2
)
214
layout.addWidget(spinBox,
1
, 0,
1
,
2
)
215
layout.addWidget(dateTimeEdit,
2
, 0,
1
,
2
)
216
layout.addWidget(slider,
3
, 0)
217
layout.addWidget(scrollBar,
4
, 0)
218
layout.addWidget(dial,
3
,
1
,
2
,
1
)
219
layout.setRowStretch(
5
,
1
)
220
self.bottomRightGroupBox.setLayout(layout)
221![]()
222
def
createProgressBar(self):
223
self.progressBar
=
QtGui.QProgressBar()
224
self.progressBar.setRange(0,
10000
)
225
self.progressBar.setValue(0)
226![]()
227
timer
=
QtCore.QTimer(self)
228
timer.timeout.connect(self.advanceProgressBar)
229
timer.start(
1000
)
230![]()
231
def
getWidget(self, splash):
232
t
=
QtCore.QElapsedTimer()
233
t.start()
234
while
(t.elapsed()
<
5000
):
235
str
=
QtCore.QString(
"
times =
"
)
+
QtCore.QString.number(t.elapsed())
236
splash.showMessage(str)
237
QtCore.QCoreApplication.processEvents()
238![]()
239
if
__name__
==
'
__main__
'
:
240![]()
241
import
sys
242![]()
243
app
=
QtGui.QApplication(sys.argv)
244![]()
245
#
splash
246
pixmap
=
QtGui.QPixmap(u
"
C:\\Users\\anlin\\Pictures\\13.png
"
)
247
splash
=
QtGui.QSplashScreen(pixmap)
248
label
=
QtGui.QLabel(splash)
249
label.setText(
"
<br><br>Foxreal
"
)
250
label.setAlignment(QtCore.Qt.AlignRight)
251
splash.show()
252
QtCore.QCoreApplication.processEvents()
253![]()
254
#
main window
255
gallery
=
WidgetGallery()
256
splash.finish(gallery.getWidget(splash))
257
gallery.show()
258
sys.exit(app.exec_())
259
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259