• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

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

            Posted on 2011-05-18 07:37 RTY 閱讀(2927) 評論(0)  編輯 收藏 引用 所屬分類: QtPython
              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
            久久精品国产69国产精品亚洲 | 午夜精品久久久久9999高清| 久久婷婷五月综合国产尤物app| 久久精品国产亚洲5555| 欧美综合天天夜夜久久| 久久久久久久综合日本亚洲| 久久国产精品成人影院| 久久99国产综合精品女同| 亚洲精品无码成人片久久| 色诱久久久久综合网ywww | 区久久AAA片69亚洲 | 精品久久久久久中文字幕大豆网| 合区精品久久久中文字幕一区| 久久伊人色| 97精品伊人久久久大香线蕉| 亚洲精品无码成人片久久| 久久大香香蕉国产| 2022年国产精品久久久久| 亚洲精品高清久久| 久久人人爽人人爽人人片AV麻豆| 国产精品久久久香蕉| 久久久久久九九99精品| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 狠狠色狠狠色综合久久| 久久丫精品国产亚洲av不卡| 久久亚洲国产午夜精品理论片| 久久久久久久综合日本| 伊人久久大香线蕉亚洲五月天| 国产精品久久影院| 色综合久久久久综合99| 欧美丰满熟妇BBB久久久| 久久亚洲精品视频| 亚洲精品成人久久久| 77777亚洲午夜久久多喷| 久久综合九色欧美综合狠狠| 久久丫精品国产亚洲av不卡| 久久亚洲天堂| 久久精品国产半推半就| 人妻无码精品久久亚瑟影视| 一本久久a久久精品综合夜夜| 中文字幕乱码久久午夜|