Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Python ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

SQL\T-SQL

FreeBSD and Nix

Общая

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


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

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

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

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

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект