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 # # 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