PyQt/QRadioButton
Description
[modifier | modifier le wikicode]La classe QRadioButton permet de mettre en place un bouton radio avec soit un label textuel soit une image (pixmap) à côté. Le label textuel peut être paramétré par le constructeur et par un appel à la méthode setText(), tandis que l'image peut être ajoutée par setPixmap(). Ce bouton peut avoir deux états, soit coché (checked), soit décoché (unchecked). Le changement d'état peut être récupéré avec le signal toggled(), tandis qu'il est possible de récupérer l'état de la case avec la méthode isChecked().
La différence principale entre QRadioButton et QCheckBox est que QRadioButton ne permet qu'un seul et unique choix tandis que QCheckBox permet de sélectionner plusieurs cases. C'est-à dire que dans le cadre d'un groupe de boutons (représenté avec la classe QButtonGroup) un seul bouton radio pourra être sélectionné.
Constructeur
[modifier | modifier le wikicode]# Constructeurs pour la classe QRadioButton
QRadioButton ( QWidget parent, str name = "" )
QRadioButton ( Qstr text, QWidget parent, str name = "" )
Exemple
[modifier | modifier le wikicode]
PyQt3.* #!/usr/bin/python
# -*- coding: utf-8 -*-
#
# qradiobutton.py
# Programme exemple pour la classe QRadioButton
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.dialog = QDialog(None, "Dialog")
#Astuce : on peut grouper les boutons grˆace à un
# QButtonGroup ; positionnement vertical des boutons
self.group1=QButtonGroup(1, Qt.Vertical, None, "group1")
self.group1.setTitle("Essai QRadioButton")
# ajout de trois boutons
# NOTE : le widget QButtonGroup se redimensionne automatiquement
self.radio1=QRadioButton("radio 1", self.group1, "radio1")
self.radio2=QRadioButton("radio 2", self.group1, "radio2")
self.radio3=QRadioButton("radio 3", self.group1, "radio3")
self.radio2.setChecked(True)
self.group1.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 -*-
#
# qRadiobox.py
# Programme exemple pour la classe QRadioButton#
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 QRadioButton", self.dialog)
self.group1.setObjectName("group1")
# définition de 3 Radioboxes
# NOTE : le widget Q3ButtonGroup se redimensionne automatiquement
self.Radio1=QRadioButton("Radiobox 1")
self.Radio2=QRadioButton("Radiobox 2")
self.Radio3=QRadioButton("Radiobox 3")
# le bouton Radio3 n'est pas modifiable
self.Radio3.setDisabled(True) ;
# espace entre les boutons
self.vbox = QVBoxLayout()
self.vbox.addWidget(self.Radio1)
self.vbox.addWidget(self.Radio2)
self.vbox.addWidget(self.Radio3)
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)
|