[Qt, C++] 버튼 클릭하여 레이블 텍스트 수정(Push Button, Label, setText)

목적

Qt Creator를 활용, 버튼을 입력하면 텍스트 레이블에 지정한 문자열을 출력한다.

테스트 환경

Windows10 / C++11 / Qt 5.15.2 / Qt Creator 4.13.3

레이블 생성

프로젝트 생성

Qt Creator를 실행하고 프로젝트를 생성한다.

이후 나오는 프로젝트 설정은 일반적으로 별다른 설정 없이 Next를 선택하면 된다.

mainwindow.ui

텍스트 레이블을 생성하기 위해 ui를 수정한다.

프로젝트 생성 시 별도로 수정했다면 아래 파일이름은 다를 수 있다.

mainwindow.ui를 더블클릭한다.

label을 ui로 드래그한다.

생성된 label을 더블클릭하면 보여지는 텍스트를 수정할 수 있고, Object의 label을 수정하면 소스코드 객체 이름을 수정할 수 있다.

좌측 하단의 Run(Ctrl + R)을 선택하여 실행하면 텍스트 레이블이 생성된 것을 확인할 수 있다.

Run을 하지 않으면 소스코드에 수정된 ui가 반영되지 않을 수 있다.

mainwindow.cpp

텍스트 레이블의 내용을 소스코드로 수정하기 위해 mainwindow.cpp로 이동한다.

Mainwindow 함수에 아래 코드를 입력한다.

label은 ui에서 만든 객체의 이름이며 setText 함수는 label의 텍스트를 설정한다.

ui->label->setText("abc");

버튼 생성, 레이블 연결

버튼을 클릭했을 때 만들어둔 label의 텍스트를 변경한다.

mainwindow.ui

mainwindow.ui에서 Push Button을 ui로 드래그한다.

생성된 버튼을 더블클릭하여 보여지는 텍스트를 변경할 수 있으며, Object의 pushButton을 수정하여 소스코드의 객체 이름을 수정할 수 있다.

버튼을 클릭했을 때 특정 함수가 실행되게 할 수 있다.

버튼을 우클릭한 후 Go to slot을 선택한다.

clicked()를 선택한 후 OK를 클릭한다.

mainwindow.cpp에 on_pushButton_clicked() 함수가 생성된다.

이제 버튼을 클릭했을 때 이 함수가 실행된다.

mainwindow.cpp

생성된 on_pushButton_clicked() 함수에서 레이블의 setText 함수를 수행하면 버튼을 클릭했을 때 레이블의 텍스트를 수정할 수 있다.

void MainWindow::on_pushButton_clicked()
{
    ui->label->setText("Hello");
}

참고

https://doc.qt.io/qt-5/qlabel.html

Leave a Comment