Навигация ⇒ 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
Комментарии пользователей
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!