Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒Python⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

PyQt 5: визуальные эффекты, включение виджетов, выход из программы


Рассмотрим:

1. Включение\Выключение виджета

2. Имитацию процесса со строкой прогресса(не забудьте создать произвольный(например 150 на 50 пикселей серый фон) png файл для фона со строкой прогресса)

3. Скрыть\показать окно программы

4. Прозрачность

5. Смену цветов

6. Закрытие программы

from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import Qt, SIGNAL
import sys, time

class Prog(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.resize(350, 250)
        self.label = QtGui.QLabel("<center>Hello!</center>")
        self.btn = QtGui.QPushButton("On\Off label")
        self.btnProgress = QtGui.QPushButton("Progress")
        self.btnVis = QtGui.QPushButton("Visible")
        self.btnOpac = QtGui.QPushButton("Opacity")
        self.btnColor = QtGui.QPushButton("Color")
        self.btnClose = QtGui.QPushButton("Close")
        self.box = QtGui.QVBoxLayout()
        self.box.addWidget(self.label)
        self.box.addWidget(self.btn)
        self.box.addWidget(self.btnProgress)
        self.box.addWidget(self.btnVis)
        self.box.addWidget(self.btnOpac)
        self.box.addWidget(self.btnColor)
        self.box.addWidget(self.btnClose)
        self.setLayout(self.box)
        
        self.connect(self.btn, QtCore.SIGNAL("clicked()"), self.des)
        self.connect(self.btnProgress, QtCore.SIGNAL("clicked()"), self.desProg)
        self.connect(self.btnVis, QtCore.SIGNAL("clicked()"), self.desVis)
        self.connect(self.btnOpac, QtCore.SIGNAL("clicked()"), self.opac)
        self.connect(self.btnColor, QtCore.SIGNAL("clicked()"), self.color)
        self.connect(self.btnClose, QtCore.SIGNAL("clicked()"), self, QtCore.SLOT("close()"))
    
    #closeEvent()
    ev = 0
    def closeEvent(self, event):
        if self.ev == 3:
            event.accept()
        elif self.ev < 3:
            event.ignore()
            self.ev += 1
    
    #Color
    def color(self):
        pal = self.palette()
        pal.setColor(QtGui.QPalette.Normal, QtGui.QPalette.Window, QtGui.QColor("DarkGreen"))
        self.setPalette(pal)
        self.label.setStyleSheet("background-color: #ffffff;")
    
    #Opacity widget
    ix = 0.0
    def opac(self):
        while self.ix <= 1.0:
            time.sleep(1)
            self.setWindowOpacity(self.ix)
            self.ix += 0.25
    
    #visible widget
    def desVis(self):
        if self.label.isVisible() == True:
            self.label.setVisible(False)
        elif self.label.isVisible() == False:
            self.label.setVisible(True)
    
    #ON\OFF widget
    a = 1
    def des(self):
        if self.a == 1:
            self.label.setDisabled(True)
            self.a = 2
        elif self.a == 2:
            self.label.setDisabled(False)
            self.a = 1
    
    #inscription over the raster image (simulation progress)
    def desProg(self):
        splash = QtGui.QSplashScreen(QtGui.QPixmap("img.png"))
        splash. showMessage ("Load data... 0%",  Qt.AlignHCenter | Qt.AlignBottom, Qt.black)
        splash.show()
        for i in range(1, 6):
            time.sleep(1)
            splash.showMessage("Load data...{0}%".format(i*20), Qt.AlignHCenter | Qt.AlignBottom, Qt.black)
            QtGui.qApp.processEvents()
            splash.show()
        splash.finish(splash)
    
app = QtGui.QApplication(sys.argv)
prog = Prog()
prog.show()
sys.exit(app.exec_())

Видео выложу на своем канале в YouTube


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru