QT

QT사용법(라벨,버튼,qDebug() )

원원 2017. 12. 27. 20:49

안녕하세요. 이번에는 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