PySide Simplissimus : la licence

PySide Simplissimus : des tutoriels d'une dizaine de minutes pour un débutant par un débutant

| Traducteur : Thibaut Cuvelier | Qt Developer Network |

On va maintenant montrer comment satisfaire aux exigences de la GPL en affichant le texte de licence.

Commentez

- Titre : PySide Simplissimus : la licence

- Auteurs : Traducteur : Thibaut Cuvelier, Qt Developer Network

- Parution : 14 mai 2011

- Mise à jour : 6 juillet 2011

- Licence : Copyright ® 2011 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. L'article original

- II. Montrer la licence

- III. Remerciements

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 !