Using a form created with Qt Designer in an application.
						The Multiple Inheritance Example shows how to use a form created with
						
							Qt Designer
						
						in an application by subclassing both
						
							QWidget
						
						and the user interface class, which is
						
Ui::CalculatorForm
						
						.
					
 
					
						To subclass the
						
calculatorform.ui
						
						file and ensure that
						
qmake
						
						processes it with the
						
uic
						
						, we have to include
						
calculatorform.ui
						
						在
						
.pro
						
						file, as shown below:
					
QT += widgets HEADERS = calculatorform.h SOURCES = calculatorform.cpp main.cpp FORMS = calculatorform.ui
						When the project is compiled, the
						
uic
						
						will generate a corresponding
						
ui_calculatorform.h
						
						.
					
						在
						
CalculatorForm
						
						definition, we include the
						
ui_calculatorform.h
						
						that was generated earlier.
					
#include "ui_calculatorform.h"
					
					
						As mentioned earlier, the class is a subclass of both
						
							QWidget
						
						and
						
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); };
						Two slots are defined according to the
						
							automatic connection
						
						naming convention required by
						
uic
						
						. This is to ensure that
						
							QMetaObject
						
						's auto-connection facilities connect all the signals and slots involved automatically.
					
						In the constructor, we call
						
setupUi()
						
						to load the user interface file. Note that setupUi is a method of
						
Ui::CalculatorForm
						
						.
					
CalculatorForm::CalculatorForm(QWidget *parent) : QWidget(parent) { setupUi(this); }
						We include two slots,
						
on_inputSpinBox1_valueChanged()
						
						and
						
on_inputSpinBox2_valueChanged()
						
						. These slots respond to the
						
							valueChanged
						
						() signal that both spin boxes emit. Whenever there is a change in one spin box's value, we take that value and add it to whatever value the other spin box has.
					
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()
						
						函数
						
					
						The
						
main()
						
						function instantiates
						
							QApplication
						
						and
						
CalculatorForm
						
						。
						
calculator
						
						object is displayed by invoking the
						
							show
						
						() 函数。
					
int main(int argc, char *argv[]) { QApplication app(argc, argv); CalculatorForm calculator; calculator.show(); return app.exec(); }
There are various approaches to include forms into applications. The Multiple Inheritance approach is just one of them. See 在应用程序中使用 Designer UI 文件 for more information on the other approaches available.