Discussion:PyQt/QCheckBox
Dernier commentaire : il y a 12 ans par JackPotte dans le sujet Réparation
Réparation
modifierTout comme ceux des chapitres précédents, ce code ne fonctionne plus. En essayant de le réparer de la même façon, je bloque finalement sur un AttributeError: 'QButtonGroup' object has no attribute 'setTitle'. JackPotte ($♠) 2 juin 2012 à 22:27 (CEST)
- En plus des problèmes de soulignés remplacés par espaces, les codes sources sont pour Qt3 au lieu de Qt4.
- Heureusement, l'outil qt3to4 fonctionne également pour Python.
- Malheureusement, le module Qt3Support pour Python ne semble pas fonctionner sous Windows car il s'agit d'un patch pour PyQt 4.4.3 seulement.
- -- ◄ David L • discuter ► 3 juin 2012 à 00:00 (CEST)
- Voici la version pour Qt4 :
#!/usr/bin/python
# -*- coding : utf-8 -*-
#
# qcheckbox.py
# Programme exemple pour la classe QCheckBox#
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.dialog = QDialog()
self.dialog.setWindowTitle("Dialog")
#Astuce : on peut grouper les boutons grâce à un
# QGroupBox
self.group1=QGroupBox("Essai QCheckBox", self.dialog)
self.group1.setObjectName("group1")
# définition de 3 checkboxes
# NOTE : le widget Q3ButtonGroup se redimensionne automatiquement
self.check1=QCheckBox("checkbox 1")
self.check2=QCheckBox("checkbox 2")
self.check3=QCheckBox("checkbox 3")
# le bouton check1 est de type ”tristate”
self.check1.setTristate()
# le bouton check2 est par défaut coché
self.check2.setChecked(True) ;
# le bouton check3 n'est pas modifiable
self.check3.setDisabled(True) ;
# espace entre les boutons
self.vbox = QVBoxLayout()
self.vbox.addWidget(self.check1)
self.vbox.addWidget(self.check2)
self.vbox.addWidget(self.check3)
self.vbox.addStretch(1)
self.group1.setLayout(self.vbox)
self.vbox2 = QVBoxLayout()
self.vbox2.addWidget(self.group1)
self.dialog.setLayout(self.vbox2)
self.dialog.show()
self.connect(self,SIGNAL("lastWindowClosed()"),self,SLOT("quit()"))
self.exec_()
if __name__ == "__main__" :
app=Demo(sys.argv)
-- ◄ David L • discuter ► 3 juin 2012 à 00:22 (CEST)
- Merci ça fonctionne parfaitement. JackPotte ($♠) 3 juin 2012 à 14:28 (CEST)