I. L'article original▲
Le Qt Developer Network est un réseau de développeurs utilisant Qt afin de partager leur savoir sur ce framework. Vous pouvez le consulter en anglais.
Nokia, Qt, Qt Quarterly et leurs logos sont des marques déposées de Nokia Corporation en Finlande et/ou dans les autres pays. Les autres marques déposées sont détenues par leurs propriétaires respectifs.
Cet article est la traduction de Show Licence.
II. Montrer la licence▲
On aura cette fois besoin de plusieurs fichiers externes : COPYING.txt, licence.py, licence.ui.
COPYING.txt est à placer dans le même répertoire que le programme. Il contient le texte pour la GPL en version 2. licence.ui doit être converti en fichier Python comme suit :
pyside-uic licence.ui > ui_licence.py
On l'utilise comme ceci :
#!/usr/bin/env python
# licence.py - display GPL licence
import
sys
from PySide.QtGui
import
QApplication, QMainWindow, QTextEdit, QPushButton
from ui_licence import
Ui_MainWindow
class
MainWindow(QMainWindow
, Ui_MainWindow):
def __init__(self, parent=
None):
'''
Mandatory initialisation of a class
.'''
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.showButton.clicked.connect
(self.fileRead)
def fileRead(self):
'''
Read and
display GPL licence.'''
self.textEdit.setText(open('COPYING.txt').read())
if
__name__ ==
'__main__':
app =
QApplication
(sys.argv)
frame =
MainWindow()
frame.show()
app.exec_()
En lançant le programme et en appuyant sur le bouton, il y aura une fenêtre TextEdit avec la licence :
Tout le code ressemble fortement aux scripts about et close. Deux déclarations sont dignes d'intérêt :
self.showButton.clicked.connect
(self.fileRead)
Le but de pushButton est d'afficher la licence, il a donc été nommé showButton. La déclaration ci-dessus connecte le signal showButton.clicked à la méthode fileRead d'une classe. Ainsi, quand on appuie sur ce bouton, la méthode fileRead est exécutée. Cette méthode dispose d'une seule déclaration :
self.textEdit.setText(open('COPYING.txt').read())
Ce n'est pas la manière la plus facile de montrer ce qui se passe, même si les développeurs Python aiment ce genre de choses. Ce code est équivalent à cette série d'instructions :
#open file
fl =
open('COPYING.txt')
tmp =
fl.read()
self.textEdit.setText(tmp)
Cela peut sembler plus clair, mais c'est plus long et plus lent, puisque Python est un langage interprété. C'est une manière de juger subjectivement lequel des deux styles est à privilégier.
III. Remerciements▲
Merci à Claude Leloup pour sa relecture attentive !