1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #!/usr/bin/python3
# -*- coding: utf-8 -*-
# Python 3
import sys, os
from PyQt5 import QtCore, QtGui, QtWidgets
#############################################################################
class ImagePlayer(QtWidgets.QWidget):
def __init__(self, filename, parent=None):
super(ImagePlayer, self).__init__(parent)
self.label = QtWidgets.QLabel()
self.movie = QtGui.QMovie(filename)
self.movie.start()
dim = self.movie.currentImage().size()
self.label.resize(dim.width(), dim.height())
self.label.setAlignment(QtCore.Qt.AlignHCenter)
self.label.setMovie(self.movie)
layout = QtWidgets.QGridLayout()
layout.addWidget(self.label, 0, 0)
self.setLayout(layout)
#############################################################################
class Fenetre(QtWidgets.QWidget):
#=== focusInEvent =======================================================
def __init__(self, parent=None):
super(Fenetre, self).__init__(parent)
self.resize(400, 300)
# créer le 1er lineEdit
self.bouton = QtWidgets.QPushButton("Lancer le programme!", self)
self.bouton.clicked.connect(self.lancementprogramme)
# positionnement des 3 widgets dans la fenêtre
posit = QtWidgets.QGridLayout()
posit.addWidget(self.bouton, 0, 0)
self.setLayout(posit)
def lancementprogramme(self):
print("lancement du programme")
# affichage du throbber
gif = os.path.abspath("ajax-loader.gif")
self.player = ImagePlayer(gif)
self.player.show()
# lancement du programme externe dans un processus
self.process = QtCore.QProcess()
self.process.finished.connect(self.findeprogramme)
self.process.start(r'"C:\Program Files (x86)\Notepad++\notepad++.exe"')
def findeprogramme(self):
print("Fin de programme")
# fermeture de la fenêtre du throbber
self.player.close()
#############################################################################
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
fen = Fenetre()
fen.show()
sys.exit(app.exec_()) |
Partager