PySide Simplissimus : à propos

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

| Traducteur : Thibaut Cuvelier | Qt Developer Network |

Cette boîte de dialogue montre la version de la boîte elle-même, ainsi que celles de Qt, PySide et Python utilisées, avec la plateforme sur laquelle le programme est lancé.

Commentez

- Titre : PySide Simplissimus : à propos

- 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. À propos

- 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 About Box.

II - À propos

La première étape est d'utiliser Qt Designer pour concevoir visuellement la fenêtre principale et ajouter un PushButton. On donne le nom about.ui grâce à l'option Sauvegarder sous (l'extension .ui est ajoutée automatiquement par Qt Designer).

Le fichierabout.ui est disponible, vous pouvez l'ouvrir avec Qt Designer pour voir ce à quoi ressemble l'interface à cette étape.

about.ui est un fichier XML. Si vous n'arrivez pas à le lire, que cela ne vous préoccupe pas trop : Python non plus. Pour le rendre lisible pour Python, on doit le faire passer par un script du paquet pyside-tools :

pyside-uic about.ui > ui_about.py

Le fichier, enfin lisible par Python, ui_about.py, peut maintenant être importé par le programme et utilisé comme montré dans le listing suivant.

#!/usr/bin/env python
# about.py - display about box with info on platform etc.

import sys
import platform

import PySide
from PySide.QtGui import QApplication, QMainWindow, QTextEdit, QPushButton, QMessageBox

from ui_about import Ui_MainWindow

__version__ = '0.0.1'

class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.aboutButton.clicked.connect(self.about)

def about(self):
'''Popup a box with about message.'''
QMessageBox.about(self, "About PySide, Platform and the like",
"""<b>Platform Details</b> v %s
<p>Copyright © 2010 Joe Bloggs.
All rights reserved in accordance with
GPL v2 or later - NO WARRANTIES!
<p>This application can be used for
displaying platform details.
<p>Python %s - PySide version %s - Qt version %s on %s""" % (__version__,
platform.python_version(), PySide.__version__, PySide.QtCore.__version__,
platform.system()))

if __name__ == '__main__':
app = QApplication(sys.argv)
frame = MainWindow()
frame.show()
app.exec_()

Le programme principal est juste à la fin. Il suit principalement le schéma habituel. On appelle l'application app et on lui passe tout argument CLI dans sys.argv. Le nom choisi pour la fenêtre est frame, mais ça pourrait être n'importe quoi. frame.show() demande au système de montrer ce cadre dès que l'application débute son cycle ; finalement, app.exec_() débute le cycle d'application, ce qui autorise les interactions avec l'utilisateur en cliquant sur les boutons et ainsi de suite.

Une note sur le listing du contenu du texte dans la boîte de dialogue : le caractère copy; a été réinterprété pour ce qu'il représente en HTML, soit un petit c entouré. En fait, dans le programme, il doit juste être écrit comme montré dans la phrase précédente.

Ce fichier about.py peut être lancé de la même manière que tout programme Python.

III - Remerciements

Merci à Claude Leloup pour sa relecture attentive !