|
Posted on 2011-05-18 07:37 RTY 阅读(2872) 评论(0) 编辑 收藏 引用 所属分类: Qt 、 Python
1 #!/usr/bin/env python 2![](/Images/OutliningIndicators/None.gif) 3![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 44![](/Images/OutliningIndicators/None.gif) 45 from PyQt4 import QtCore, QtGui 46![](/Images/OutliningIndicators/None.gif) 47![](/Images/OutliningIndicators/None.gif) 48 class WidgetGallery(QtGui.QDialog): 49 def __init__(self, parent=None): 50 super(WidgetGallery, self).__init__(parent) 51![](/Images/OutliningIndicators/None.gif) 52 self.originalPalette = QtGui.QApplication.palette() 53![](/Images/OutliningIndicators/None.gif) 54 styleComboBox = QtGui.QComboBox() 55 styleComboBox.addItems(QtGui.QStyleFactory.keys()) 56![](/Images/OutliningIndicators/None.gif) 57 styleLabel = QtGui.QLabel("&Style:") 58 styleLabel.setBuddy(styleComboBox) 59![](/Images/OutliningIndicators/None.gif) 60 self.useStylePaletteCheckBox = QtGui.QCheckBox("&Use style's standard palette") 61 self.useStylePaletteCheckBox.setChecked(True) 62![](/Images/OutliningIndicators/None.gif) 63 disableWidgetsCheckBox = QtGui.QCheckBox("&Disable widgets") 64![](/Images/OutliningIndicators/None.gif) 65 self.createTopLeftGroupBox() 66 self.createTopRightGroupBox() 67 self.createBottomLeftTabWidget() 68 self.createBottomRightGroupBox() 69 self.createProgressBar() 70![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 98 self.setWindowTitle("Styles") 99 self.changeStyle('Windows') 100![](/Images/OutliningIndicators/None.gif) 101 def changeStyle(self, styleName): 102 QtGui.QApplication.setStyle(QtGui.QStyleFactory.create(styleName)) 103 self.changePalette() 104![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 111 def advanceProgressBar(self): 112 curVal = self.progressBar.value() 113 maxVal = self.progressBar.maximum() 114 self.progressBar.setValue(curVal + (maxVal - curVal) / 100) 115![](/Images/OutliningIndicators/None.gif) 116 def createTopLeftGroupBox(self): 117 self.topLeftGroupBox = QtGui.QGroupBox("Group 1") 118![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 124 checkBox = QtGui.QCheckBox("Tri-state check box") 125 checkBox.setTristate(True) 126 checkBox.setCheckState(QtCore.Qt.PartiallyChecked) 127![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 136 def createTopRightGroupBox(self): 137 self.topRightGroupBox = QtGui.QGroupBox("Group 2") 138![](/Images/OutliningIndicators/None.gif) 139 defaultPushButton = QtGui.QPushButton("Default Push Button") 140 defaultPushButton.setDefault(True) 141![](/Images/OutliningIndicators/None.gif) 142 togglePushButton = QtGui.QPushButton("Toggle Push Button") 143 togglePushButton.setCheckable(True) 144 togglePushButton.setChecked(True) 145![](/Images/OutliningIndicators/None.gif) 146 flatPushButton = QtGui.QPushButton("Flat Push Button") 147 flatPushButton.setFlat(True) 148![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 156 def createBottomLeftTabWidget(self): 157 self.bottomLeftTabWidget = QtGui.QTabWidget() 158 self.bottomLeftTabWidget.setSizePolicy(QtGui.QSizePolicy.Preferred, 159 QtGui.QSizePolicy.Ignored) 160![](/Images/OutliningIndicators/None.gif) 161 tab1 = QtGui.QWidget() 162 tableWidget = QtGui.QTableWidget(10, 10) 163![](/Images/OutliningIndicators/None.gif) 164 tab1hbox = QtGui.QHBoxLayout() 165 tab1hbox.setMargin(5) 166 tab1hbox.addWidget(tableWidget) 167 tab1.setLayout(tab1hbox) 168![](/Images/OutliningIndicators/None.gif) 169 tab2 = QtGui.QWidget() 170 textEdit = QtGui.QTextEdit() 171![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 179 tab2hbox = QtGui.QHBoxLayout() 180 tab2hbox.setMargin(5) 181 tab2hbox.addWidget(textEdit) 182 tab2.setLayout(tab2hbox) 183![](/Images/OutliningIndicators/None.gif) 184 self.bottomLeftTabWidget.addTab(tab1, "&Table") 185 self.bottomLeftTabWidget.addTab(tab2, "Text &Edit") 186![](/Images/OutliningIndicators/None.gif) 187 def createBottomRightGroupBox(self): 188 self.bottomRightGroupBox = QtGui.QGroupBox("Group 3") 189 self.bottomRightGroupBox.setCheckable(True) 190 self.bottomRightGroupBox.setChecked(True) 191![](/Images/OutliningIndicators/None.gif) 192 lineEdit = QtGui.QLineEdit('s3cRe7') 193 lineEdit.setEchoMode(QtGui.QLineEdit.Password) 194![](/Images/OutliningIndicators/None.gif) 195 spinBox = QtGui.QSpinBox(self.bottomRightGroupBox) 196 spinBox.setValue(50) 197![](/Images/OutliningIndicators/None.gif) 198 dateTimeEdit = QtGui.QDateTimeEdit(self.bottomRightGroupBox) 199 dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime()) 200![](/Images/OutliningIndicators/None.gif) 201 slider = QtGui.QSlider(QtCore.Qt.Horizontal, self.bottomRightGroupBox) 202 slider.setValue(40) 203![](/Images/OutliningIndicators/None.gif) 204 scrollBar = QtGui.QScrollBar(QtCore.Qt.Horizontal, 205 self.bottomRightGroupBox) 206 scrollBar.setValue(60) 207![](/Images/OutliningIndicators/None.gif) 208 dial = QtGui.QDial(self.bottomRightGroupBox) 209 dial.setValue(30) 210 dial.setNotchesVisible(True) 211![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 222 def createProgressBar(self): 223 self.progressBar = QtGui.QProgressBar() 224 self.progressBar.setRange(0, 10000) 225 self.progressBar.setValue(0) 226![](/Images/OutliningIndicators/None.gif) 227 timer = QtCore.QTimer(self) 228 timer.timeout.connect(self.advanceProgressBar) 229 timer.start(1000) 230![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 239 if __name__ == '__main__': 240![](/Images/OutliningIndicators/None.gif) 241 import sys 242![](/Images/OutliningIndicators/None.gif) 243 app = QtGui.QApplication(sys.argv) 244![](/Images/OutliningIndicators/None.gif) 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![](/Images/OutliningIndicators/None.gif) 254 #main window 255 gallery = WidgetGallery() 256 splash.finish(gallery.getWidget(splash)) 257 gallery.show() 258 sys.exit(app.exec_()) 259![](/Images/OutliningIndicators/None.gif)
|