Discussion:PyQt/QCheckBox
Ajouter un sujetApparence
Dernier commentaire : il y a 12 ans par JackPotte dans le sujet Réparation
Réparation
[modifier le wikicode]Tout 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)