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 !