• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            使用PyQt 制作簡單的啟動界面的例子代碼

            Posted on 2011-05-18 07:37 RTY 閱讀(2913) 評論(0)  編輯 收藏 引用 所屬分類: Qt 、Python
              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
             45from PyQt4 import QtCore, QtGui
             46
             47
             48class 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, 12)
             87        mainLayout.addWidget(self.topLeftGroupBox, 1, 0)
             88        mainLayout.addWidget(self.topRightGroupBox, 11)
             89        mainLayout.addWidget(self.bottomLeftTabWidget, 2, 0)
             90        mainLayout.addWidget(self.bottomRightGroupBox, 21)
             91        mainLayout.addWidget(self.progressBar, 3, 0, 12)
             92        mainLayout.setRowStretch(11)
             93        mainLayout.setRowStretch(21)
             94        mainLayout.setColumnStretch(0, 1)
             95        mainLayout.setColumnStretch(11)
             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(1010)
            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, 12)
            214        layout.addWidget(spinBox, 1, 0, 12)
            215        layout.addWidget(dateTimeEdit, 2, 0, 12)
            216        layout.addWidget(slider, 3, 0)
            217        layout.addWidget(scrollBar, 4, 0)
            218        layout.addWidget(dial, 3121)
            219        layout.setRowStretch(51)
            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
            239if __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
            精品久久久久香蕉网| 久久99精品久久久久久齐齐| 色偷偷久久一区二区三区| 亚洲国产精品无码久久SM| 国产高潮国产高潮久久久| 中文精品久久久久国产网址| 区久久AAA片69亚洲| 国产99久久久国产精免费| 亚洲伊人久久精品影院| 色综合久久综精品| 久久久久亚洲爆乳少妇无| 伊人久久大香线蕉AV色婷婷色| 国产精品久久新婚兰兰| 热re99久久精品国99热| 99久久久精品| 久久久久久国产a免费观看黄色大片 | 亚洲第一永久AV网站久久精品男人的天堂AV | 久久久久成人精品无码| 久久福利资源国产精品999| 潮喷大喷水系列无码久久精品| 久久乐国产精品亚洲综合| 久久午夜羞羞影院免费观看| 久久久精品国产亚洲成人满18免费网站 | 国产精品一区二区久久国产| 久久人人爽人人爽AV片| 精品久久久久久无码专区 | 久久精品国产亚洲AV久| 久久亚洲高清综合| 国产Av激情久久无码天堂| 精品国产乱码久久久久久1区2区| 精品国产综合区久久久久久| 欧美亚洲色综久久精品国产| 国内精品久久久久国产盗摄| 精品久久久噜噜噜久久久| 久久精品国产乱子伦| 久久99热这里只有精品国产| 精品久久一区二区| 久久久久高潮毛片免费全部播放 | 丁香狠狠色婷婷久久综合| 2020国产成人久久精品| 久久精品国产欧美日韩|