[Qt, C++] Table Widget 사용(QTableWidget)

테스트 환경

Window 10 / C++ / Qt 5.15.2 / Qt Creator 4.13.3

목적

Qt Creator를 활용, 테이블 위젯을 만든 후 버튼을 클릭할 시 테이블 위젯에 행 추가

테이블 위젯, 버튼 생성

프로젝트 생성

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

mainwindow.ui

ui에 버튼과 테이블 위젯을 드래그하여 추가한다.

mainwindow.ui를 더블클릭 후 Push ButtonTable Widget을 ui로 드래그한다.

버튼과 테이블위젯의 객체 이름은 기본값인 pushButton, tableWidget이다.

Table Widget을 더블클릭하면 열을 만들 수 있다. Columns 탭에서 아래 +를 선택하여 열을 추가한다.

버튼과 테이블위젯 연결

버튼을 클릭하면 특정 함수가 실행되게 할 수 있다. 이 함수 내부에 테이블 위젯의 행을 추가하는 코드를 삽입할 것이다.

버튼을 클릭하면 특정 함수가 실행되게 하는 법은 아래 글을 참고한다.

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

테이블위젯 행 추가

수정된 ui를 소스코드가 인식하지 못할 수 있기 때문에 Run을 한다.

위에서 만들어진 on_pushButton_clicked() 함수에 아래 코드를 추가한다.

void MainWindow::on_pushButton_clicked()
{
    int a = 4;
    ui->tableWidget->insertRow(ui->tableWidget->rowCount());
    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, 0, new QTableWidgetItem(QString::number(123)));
    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, 1, new QTableWidgetItem(QString::number(a)));
    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, 2, new QTableWidgetItem("create"));
}

insertRow로 행을 추가한다. rowCount함수를 이용하여 이전에 만들어진 행의 숫자를 계산하여 그 다음 행을 추가한다.

setItem(행, 열, 내용)으로 특정 행과 열의 내용을 입력한다. rowCount를 이용하여 insertRow로 새롭게 만들어진 행에 내용을 추가한다.

PushButton을 클릭할때마다 행이 하나씩 추가된다.

Leave a Comment