안녕하세요. 이번에는 QT를 이용해서 버튼을 클릭하면 라벨에 있는 텍스트가 변하는 것을 해보겠습니다.
GUI를 꾸며줍니다.
라벨의 이름은 label
버튼의 이름은 pushButton이 기본이름이네요.
버튼을 오른쪽 클릭해서 Go to slot을 클릭합니다.
clicked()를 클릭해줍니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { ui->label->setText("HI"); } | cs |
16번 줄의 on_pushButton_clicked()함수에 버튼을 클릭하면 발생할 이벤트를 입력하면 됩니다.
또한 mainwindow.h에 함수가 선언 되었습니다.
1 2 3 | private slots: void on_pushButton_clicked(); | cs |
QT에는 signal과 slot라는게 있습니다. signal이 발생하면 slot이벤트가 발생합니다.
예)
버튼을 클릭하면 A함수가 실행된다. (SIGNAL : 클릭 , SLOT : A함수)
TCP/IP통신에서 입력받을 데이터가있으면 A함수가 실행된다. (SIGNAL : 입력받을 데이터, SLOT : A함수)
키보드에서 키를 입력하면 라벨이 움직인다. (SIGNAL : 키보드에서 키 입력, SLOT : 라벨움직임)
이런식으로 SIGNAL은 이미 만들어진걸 사용할 수도 있고 사용자가 만들 수도 있습니다.
더 자세한 것은 다음 글에서 해보겠습니다.
C언어에서 printf기능이나 안드로이드에서 Log기능 자바에서 System.out.println기능 c++에서 cout<<기능을 하는 함수가 QT에도 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); qDebug() << "HI"; } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { ui->label->setText("HI"); } | cs |
QDebug를 include해줍니다. (3번째줄)
qDebug()함수를 사용합니다. (9번째줄)
c++의 cout와 사용방법이 비슷합니다.
Application Output창에 출력되는것을 확인 할 수 있습니다.
QT의 장점 중 하나가 API보기가 쉽습니다. 궁금한 함수에 가서 F1을 클릭하면 예제와 매개변수/반환형 등 설명이 잘 나옵니다.
'기타지식들 > QT' 카테고리의 다른 글
QT 사용법(SIGNAL과 SLOT) (0) | 2017.12.27 |
---|---|
QT 사용법(프로젝트만들기,Hello World) (0) | 2017.12.27 |