최초 생성 시각: 2023-06-18 06:52:20
최근 수정 시각: 2023-06-23 13:49:17
QT += widgets
앞서 console 앱을 만들 경우 QCoreApplication
을 사용했다. GUI 앱을 만들기 위해서는 QApplication
을 사용하면 됨.
#include <QApplication>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
return app.exec();
}
위 코드와 같이 QApplication
헤더를 포함하고, event loop를 만들어야함. 이때 부르는 클래스가 QApplication이라는 점. 해당 클래스는 QTWidget
모듈에 있으니 .pro
파일에 추가했던 것이다.
QObject < | – Qwidget |
(window 경우) QWidget < | – QMainWindow |
(button 경우) QWidget < | – QAbstractButton < | – QPushButton |
QPaintDevice
클래스도 상속받고 있으며 다중상속받고 있음.QWidget
or QMainWindow
클래스 사용// QWidget으로 대충 만들어보면,
QWidget win;
win.show(); // 이러면 window하나 만들어짐.
QWidget
QMainWindow
를 직접 사용하지말고 파생클래스 만들어서 사용하는 것이 관례대충 코드는 아래와 같이 작성
#include <QApplication>
#include <QWidget>
#include <QDebug>
class window : public QWidget
{
//여기서 다양한 것들을 추가해서 사용할 수 잇음.
};
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QWidget win;
win.show();
return app.exec();
}
window
에 가상함수를 추가하는 방법
window
에서 마우스 오른쪽 클릭하고, 아래와 같이 Refactor 버튼 들어가면 됨.class window : public QWidget
{
//여기서 다양한 것들을 추가해서 사용할 수 잇음.
// QWidget interface
protected:
void mousePressEvent(QMouseEvent *event);
};
class window : public QWidget
{
//여기서 다양한 것들을 추가해서 사용할 수 잇음.
// QWidget interface
protected:
void mousePressEvent(QMouseEvent *event)
{
}
};
class window : public QWidget
{
//여기서 다양한 것들을 추가해서 사용할 수 잇음.
// QWidget interface
protected:
void mousePressEvent(QMouseEvent *event);
};
void window::mousePressEvent(QMouseEvent *event)
{
}
class window : public QWidget
{
//여기서 다양한 것들을 추가해서 사용할 수 잇음.
QPushButton* btn;
QSlider *slider;
public:
window()
{
// 내거..
btn = new QPushButton("OK", this);
slider = new QSlider(Qt::Vertical, this);
// btn 위치 지정이 안되있어서 이상하게 나옴.
btn->setGeometry(10,10 ,100,30);
slider->setGeometry(50,50, 10, 100);
}
// QWidget interface
};
공감하기