Formulaire de calculateur/héritage multiple
Utilisation d'un formulaire créé avec Qt Widgets Designer dans une application.
L'exemple d'héritage multiple montre comment utiliser un formulaire créé avec Qt Widgets Designer dans une application en sous-classant à la fois QWidget et la classe d'interface utilisateur, qui est Ui::CalculatorForm.

Pour sous-classer le fichier calculatorform.ui et s'assurer que qmake le traite avec uic, nous devons inclure calculatorform.ui dans le fichier .pro, comme indiqué ci-dessous :
QT += widgets HEADERS = calculatorform.h SOURCES = calculatorform.cpp main.cpp FORMS = calculatorform.ui
Lorsque le projet est compilé, le fichier uic génère un fichier ui_calculatorform.h correspondant.
Définition de CalculatorForm
Dans la définition de CalculatorForm, nous incluons la classe ui_calculatorform.h qui a été générée précédemment.
#include "ui_calculatorform.h"Comme indiqué précédemment, la classe est une sous-classe de QWidget et de Ui::CalculatorForm.
class CalculatorForm : public QWidget, private Ui::CalculatorForm { Q_OBJECT public: explicit CalculatorForm(QWidget *parent = nullptr); private slots: void on_inputSpinBox1_valueChanged(int value); void on_inputSpinBox2_valueChanged(int value); };
Deux emplacements sont définis conformément à la convention de dénomination des connexions automatiques exigée par uic. Cela permet de s'assurer que les fonctions d'auto-connexion de QMetaObject connectent automatiquement tous les signaux et slots concernés.
Mise en œuvre de CalculatorForm
Dans le constructeur, nous appelons setupUi() pour charger le fichier d'interface utilisateur. Notez que setupUi est une méthode de Ui::CalculatorForm.
Nous incluons deux slots, on_inputSpinBox1_valueChanged() et on_inputSpinBox2_valueChanged(). Ces slots répondent au signal valueChanged() émis par les deux spin boxes. Chaque fois que la valeur d'une spin box change, nous prenons cette valeur et l'ajoutons à la valeur de l'autre spin box.
void CalculatorForm::on_inputSpinBox1_valueChanged(int value) { outputWidget->setText(QString::number(value + inputSpinBox2->value())); } void CalculatorForm::on_inputSpinBox2_valueChanged(int value) { outputWidget->setText(QString::number(value + inputSpinBox1->value())); }
main() Fonction
La fonction main() instancie QApplication et CalculatorForm. L'objet calculator est affiché en invoquant la fonction show().
int main(int argc, char *argv[]) { QApplication app(argc, argv); CalculatorForm calculator; calculator.show(); return app.exec(); }
Il existe plusieurs approches pour inclure des formulaires dans les applications. L'approche de l'héritage multiple n'est que l'une d'entre elles. Voir Utilisation d'un fichier Designer UI dans votre application pour plus d'informations sur les autres approches disponibles.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.