1. Description de la classe QPushButton PyQt5
- La classe QPushButton de PyQt5 est une classe qui représente un bouton graphique dans une interface utilisateur. Ce bouton peut être cliqué par l'utilisateur pour déclencher une action.
- La classe QPushButton hérite de la classe QAbstractButton, ce qui signifie qu'elle possède toutes les propriétés et méthodes de cette dernière classe, ainsi que des propriétés et méthodes spécifiques à QPushButton.
- Le texte affiché sur le bouton peut être spécifié à l'aide de la méthode setText(), tandis que l'icône peut être spécifiée à l'aide de la méthode setIcon(). Le texte de l'infobulle qui apparaît lorsque l'utilisateur survole le bouton peut être spécifié à l'aide de la méthode setToolTip().
- La méthode setShortcut() permet de spécifier un raccourci clavier qui peut être utilisé pour déclencher l'action associée au bouton.
- Un bouton QPushButton peut être associé à un menu à l'aide de la méthode setMenu(). Le menu peut être affiché en cliquant sur le bouton ou en appuyant sur une touche spécifique si le menu a un raccourci clavier.
- La méthode setDefault() permet de spécifier si le bouton est le bouton par défaut de la fenêtre parente. Lorsque le bouton par défaut est enfoncé, il est possible de le déclencher en appuyant sur la touche "Entrée" ou "Espace".
- La méthode setAutoDefault() permet de spécifier si le bouton doit être automatiquement activé lorsque la fenêtre parente a le focus.
- Un bouton QPushButton peut être de type "bouton à bascule" (toggle button) en spécifiant la propriété checkable à True lors de la création de l'objet. La méthode isChecked() renvoie True si le bouton de type "bouton à bascule" est actuellement enfoncé, False sinon. La méthode toggle() inverse l'état du bouton de type "bouton à bascule".
- La méthode click() permet de déclencher manuellement un clic sur le bouton, tandis que la méthode animateClick() déclenche l'animation d'un clic.
- La classe QPushButton émet différents signaux lorsqu'un événement se produit. Le signal clicked() est émis lorsque le bouton est cliqué, le signal pressed() est émis lorsque le bouton est enfoncé, et le signal released() est émis lorsque le bouton est relâché.
2. Créer un Bouton PyQt5 avec la classe QPusButton
Pour créer un bouton de commande du type QPusButton, il suffit d'instancier la classe QPusButton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton app = QApplication(sys.argv) win = QWidget() win.setGeometry(100 , 100 , 500 , 300) # create a QPusButton q_btn = QPushButton(win) q_btn.setText("This is a QPusButton ! ") q_btn.setGeometry(100 , 100 , 200 , 50) win.show() app.exec_() |
3. Associer une action à un bouton QPushButton PyQt5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton # create a button action def action(): print("Why you clicked the button !") app = QApplication(sys.argv) win = QWidget() win.setGeometry(100 , 100 , 500 , 300) # create a QPusButton q_btn = QPushButton(win) q_btn.setText("This is a QPusButton ! ") q_btn.setGeometry(100 , 100 , 200 , 50) # bind an action to the button q_btn.clicked.connect(action) win.show() app.exec_() |
Ce qui affiche à l'écran une fenêtre avec un bouton de commande et en cliquant sur ce dernier, on aperçoit l'affichage à l'écran du message:
Why you clicked the button !
4. QPushButton PyQt5 selon l'approche objet Python
4.1 Créer un QPushButton selon l'approche objet Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class Window(QWidget): def __init__(self , window): super().__init__() self.window = window def build(self): self.window.setWindowTitle("Window With QPusButton !") self.window.setGeometry(100 , 100 , 400 , 300) # create a QPushButton self.q_btn = QPushButton(self.window) self.q_btn.setText("This is a QPushButton from object approach !") self.q_btn.setGeometry(50 , 50, 300 , 35) if __name__ == "__main__": app = QApplication(sys.argv) win = QWidget() myWin = Window(win) myWin.build() win.show() app.exec_() |
4.2 Associer une action à un QPushButton selon l'approche objet Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class Window(QWidget): def __init__(self , window): super().__init__() self.window = window def action(self): print("Why you clicked the button !") def build(self): self.window.setWindowTitle("Window With QPusButton !") self.window.setGeometry(100 , 100 , 500 , 300) # create a QPushButton self.q_btn = QPushButton(self.window) self.q_btn.setText("This is a QPushButton from object approach !") self.q_btn.setGeometry(100 , 100 , 250 , 35) self.q_btn.clicked.connect(self.action) if __name__ == "__main__": app = QApplication(sys.argv) win = QWidget() myWin = Window(win) myWin.build() win.show() app.exec_() |
5. Liste des principales méthodes associées à un objet 'QPushButton' PyQt5
Voici une liste non exhaustive des méthodes associées à un objet QPushButton de PyQt5, triée par ordre alphabétique :
- animateClick(): déclenche l'animation d'un clic sur le bouton
- click(): émet un signal clicked pour indiquer que le bouton a été cliqué
- defaultAction(): renvoie l'action par défaut associée au bouton
- hasDefault(): renvoie True si le bouton a une action par défaut, False sinon
- icon(): renvoie l'icône actuellement affichée sur le bouton
- isCheckable(): renvoie True si le bouton est de type "bouton à bascule" (toggle button), False sinon
- isChecked(): renvoie True si le bouton de type "bouton à bascule" est actuellement enfoncé, False sinon
- menu(): renvoie le menu associé au bouton
- setAutoDefault(): pécifie si le bouton est le bouton par défaut de la fenêtre parente lorsqu'il a le focus (True) ou non (False)
- setDefault(): spécifie si le bouton est le bouton par défaut de la fenêtre parente (True) ou non (False)
- setFlat(): spécifie si le bouton est un bouton plat (True) ou non (False)
- setIcon(): spécifie l'icône à afficher sur le bouton
- setMenu(): spécifie le menu à associer au bouton
- setShortcut(): spécifie le raccourci clavier associé au bouton
- setText(): spécifie le texte à afficher sur le bouton
- setToolTip(): spécifie le texte de l'infobulle associée au bouton
- showMenu(): affiche le menu associé au bouton
- text(): renvoie le texte actuellement affiché sur le bouton
- toggle(): inverse l'état du bouton de type "bouton à bascule"
Younes Derfoufi
CRMEF OUJDA