PyQt/QMainWindow
Description
[modifier | modifier le wikicode]Cette classe représente une fenêtre principale d'une application, pouvant contenir entre autre une barre de menus, une zone pour les barres d'outils et une barre de statuts. Cette fenêtre est généralement utilisée pour fournir l'accès à un widget central comme par exemple une zone d'édition de texte, une zone de dessin ou un espace de travail (QWorkspace) pour les applications comportant plusieurs fenêtres. Afin d'ajouter simplement des menus et barres d'outils à une fenêtre, il suffit d'appeler le constructeur du widget voulu en lui passant la fenêtre comme paramètre pour le parent. Ce widget supporte aussi les « fenêtres crochantes », à savoir que vous pouvez avoir plusieurs éléments graphiques dans la fenêtre principale et les positionner à votre guise. Vu la multitude de possibilités offertes par ce widget nous ne pouvons que vous conseiller de consulter la documentation de référence à l'adresse http://qt-project.org/doc/qt-4.8/qmainwindow.html. Vous trouverez aussi sur cette page quelques extraits de code (C++) vous montrant la mise en œuvre de certaines fonctionnalités.
Constructeur
[modifier | modifier le wikicode]# Constructeurs pour la classe QMainWindow
QMainWindow ( QWidget parent = None, str name = "", WFlags f = WType TopLevel)
Exemple
[modifier | modifier le wikicode]
PyQt3.* #!/usr/bin/python
# -*- coding : utf-8 -*-
#
# qmainwindow.py
# Programme exemple pour la classe QMainWindow
from qt import *
import sys
class Demo(QApplication) :
def init (self, args) :
QApplication. init (self,args)
# widget principal, il s'agit d'une fenêtre de dialogue
self.main = QMainWindow(None, "mainwindow")
self.main.setCaption("Demo QMainWindow")
self.main.resize(640,480)
#widget central : QTextEdit
self.edit = QTextEdit(self.main, "editor")
self.edit.setFocus()
self.main.setCentralWidget(self.edit)
# ajout facile d'éléments dans la barre de menu
# NOTE : crée la barre s'il n'existe pas
self.main.menuBar().insertItem("New")
self.main.menuBar().insertItem("Quit")
# changement du message de status
# NOTE : crée la zone de status si inexistante
self.main.statusBar().message("Demo en cours", 200000)
self.main.show()
self.connect(self,SIGNAL("lastWindowClosed()"),self,SLOT("quit()"))
self.exec loop()
if name == "__main__" :
app=Demo(sys.argv)
PyQt4.* #!/usr/bin/python
# -*- coding : utf-8 -*-
#
# qmainwindow.py
# Programme exemple pour la classe QMainWindow
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class Demo(QApplication) :
def __init__(self, args) :
QApplication.__init__(self,args)
# widget principal, il s'agit d'une fenêtre de dialogue
self.main = QMainWindow()
self.main.setWindowTitle("Demo QMainWindow")
self.main.resize(640,480)
#widget central : QTextEdit
self.edit = QTextEdit("editor", self.main)
self.edit.setFocus()
self.main.setCentralWidget(self.edit)
# ajout facile d'éléments dans la barre de menu
# NOTE : crée la barre s'il n'existe pas
self.main.menuBar().addAction("New")
self.main.menuBar().addAction("Quit")
# changement du message de status
# NOTE : crée la zone de status si inexistante
self.main.statusBar().showMessage("Demo en cours", 10000)
self.main.show()
self.connect(self,SIGNAL("lastWindowClosed()"),self,SLOT("quit()"))
self.exec_()
if __name__ == "__main__" :
app=Demo(sys.argv)
|