티스토리 뷰
목차
Qt C++ 다중상속 예제 (Multiple inheritance) 프로그래밍 소스
해외 블로거의 글을 번역한 포스트입니다. 아쉽게도 원래 글을 적으신 분이 블로그를 폭파하셔서 링크는 남길 수가 없네요.
Qt도 C++ 계열이라 여기서 소개하는 소스는 C++과 관련된 어느 소스에나 적용할 수 있습니다.
다중상속 예제는 계산기 구현으로 이뤄졌으니 참고하세요. Qt C++ 다중상속 예제 시작합니다.
[Qt C++ 다중상속 예제]
CalculatorForm 정의
CalculatorForm에는 ui_calculatorform.h 파일이 포함됩니다.
1 | #include "ui_calculatorform.h" | cs |
모든 클래스들은 QWidge와 Ui::CalculatorForm의 서브 클래스로 선언됩니다.
1 2 3 4 5 6 7 8 9 10 11 | class CalculatorForm : public QWidget, private Ui::CalculatorForm { Q_OBJECT public: CalculatorForm(QWidget *parent = 0); private slots: void on_inputSpinBox1_valueChanged(int value); void on_inputSpinBox2_valueChanged(int value); }; | cs |
CalculatorForm 구현 (다중상속 기반)
생성자에서 setupUi() 함수로 인터페이스 파일들을 불러옵니다.
1 2 3 4 5 | CalculatorForm::CalculatorForm(QWidget *parent) : QWidget(parent) { setupUi(this); } | cs |
on_inputSpinBox1_valueChanged()와 on_inputSpinBox2_valueChanged()란 두 함수를 추가합니다.
하나의 함수가 동작하면 다른 함수에도 영향을 미칩니다.
1 2 3 4 5 6 7 8 9 | 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())); } | cs |
다중상속 예제 main() 함수
main() 함수는 QApplication과 CalculatorForm를 인스턴스화하며, show() 함수를 호출하여 결과를 출력합니다.
1 2 3 4 5 6 7 8 9 10 11 | int main(int argc, char *argv[]) { QApplication app(argc, argv); CalculatorForm calculator; #if defined(Q_OS_SYMBIAN) calculator.showMaximized(); #else calculator.show(); #endif return app.exec(); } | cs |
응용 프로그램에 다른 Form을 추가하는 방법엔 여러가지가 있으며 다중상속은 그 중 하나입니다.
Qt C++ 다중상속 예제 (Multiple inheritance) 프로그래밍 소스