Python PyQt Widgets courants
PyQt est une boîte à outils de programmation GUI pour le langage Python, et c'est la liaison Python du framework d'application Qt.
Qt est un framework multiplateforme de développement d'applications GUI en C++, largement utilisé pour développer des programmes GUI.
PyQt fournit un riche ensemble de widgets pour créer des interfaces utilisateur ; ces widgets sont les briques de base pour construire des applications GUI.
Widgets de fenêtre de base
QMainWindow
QMainWindow est la classe de fenêtre principale, fournissant un framework d'application standard :
Exemple
app = QApplication([])
window = QMainWindow()
window.setWindowTitle('Exemple de fenêtre principale')
window.setGeometry(100, 100, 800, 600) # x, y, largeur, hauteur
window.show()
app.exec_()
QWidget
QWidget est la classe de base de tous les objets d'interface utilisateur :
Exemple
widget = QWidget()
widget.setWindowTitle('Fenêtre de base')
widget.show()
Widgets de saisie courants
QLabel
Afficher du texte ou des images :
Exemple
label = QLabel('Ceci est un libellé')
label.setStyleSheet('font-size: 16px; color: blue;')
QLineEdit
Champ de saisie de texte sur une ligne :
Exemple
line_edit = QLineEdit()
line_edit.setPlaceholderText('Veuillez saisir le contenu...')
QTextEdit
Éditeur de texte multiligne :
Exemple
text_edit = QTextEdit()
text_edit.setPlainText('Éditeur de texte multiligne')
QComboBox
Liste déroulante de sélection :
Exemple
combo = QComboBox()
combo.addItems(['Option 1', 'Option 2', 'Option 3'])
Widgets de boutons
QPushButton
Bouton normal :
Exemple
button = QPushButton('Cliquez-moi')
button.setStyleSheet('background-color: green; color: white;')
QRadioButton
Bouton radio :
Exemple
radio1 = QRadioButton('Option 1')
radio2 = QRadioButton('Option 2')
QCheckBox
Case à cocher :
Exemple
check1 = QCheckBox('Choix 1')
check2 = QCheckBox('Choix 2')
Widgets de mise en page
QHBoxLayout
Disposition horizontale :
Exemple
h_layout = QHBoxLayout()
h_layout.addWidget(QPushButton('Gauche'))
h_layout.addWidget(QPushButton('Centre'))
h_layout.addWidget(QPushButton('Droite'))
QVBoxLayout
Disposition verticale :
Exemple
v_layout = QVBoxLayout()
v_layout.addWidget(QPushButton('Haut'))
v_layout.addWidget(QPushButton('Milieu'))
v_layout.addWidget(QPushButton('Bas'))
QGridLayout
Disposition en grille :
Exemple
grid = QGridLayout()
grid.addWidget(QPushButton('(0,0)'), 0, 0)
grid.addWidget(QPushButton('(0,1)'), 0, 1)
grid.addWidget(QPushButton('(1,0)'), 1, 0)
Widgets avancés
QTableWidget
Widget de tableau :
Exemple
table = QTableWidget(3, 3) # 3 lignes 3 colonnes
table.setHorizontalHeaderLabels(['Colonne 1', 'Colonne 2', 'Colonne 3'])
table.setItem(0, 0, QTableWidgetItem('Données 1'))
QTreeWidget
Widget d'arborescence :
Exemple
tree = QTreeWidget()
tree.setHeaderLabels(['Name', 'Value'])
root = QTreeWidgetItem(tree, ['Root Node'])
child = QTreeWidgetItem(root, ['Child Node', '123'])
QTabWidget
Widget à onglets :
Exemple
tab = QTabWidget()
tab.addTab(QWidget(), 'Onglet 1')
tab.addTab(QWidget(), 'Onglet 2')
Widgets de dialogue
QMessageBox
Boîte de message :
Exemple
msg = QMessageBox()
msg.setWindowTitle('Invite')
msg.setText('Ceci est une boîte de message')
msg.setIcon(QMessageBox.Information)
msg.exec_()
QFileDialog
Boîte de dialogue de fichier :
Exemple
file_name = QFileDialog.getOpenFileName(None, 'Sélectionner un fichier', '', 'Fichiers texte (*.txt);;Tous les fichiers (*)')
Paramètres de style
PyQt permet d'utiliser des styles CSS pour embellir les widgets :
Exemple
button.setStyleSheet('''
QPushButton {
background-color: #4C7EAF;
border: none;
color: white;
padding: 10px 24px;
text-align: center;
font-size: 16px;
margin: 4px 2px;
border-radius: 8px;
}
QPushButton:hover {
background-color: #4777A6;
}
''')