티스토리 뷰

목차

    Qt C++ 다중상속 예제 (Multiple inheritance) 프로그래밍 소스


    해외 블로거의 글을 번역한 포스트입니다. 아쉽게도 원래 글을 적으신 분이 블로그를 폭파하셔서 링크는 남길 수가 없네요.


    Qt도 C++ 계열이라 여기서 소개하는 소스는 C++과 관련된 어느 소스에나 적용할 수 있습니다.

    다중상속 예제는 계산기 구현으로 이뤄졌으니 참고하세요. Qt C++ 다중상속 예제 시작합니다.


    qt 다중상속 예제[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) 프로그래밍 소스