테스트 환경
Window 10 / C++ / Qt 5.15.2 / Qt Creator 4.13.3
목적
Qt Creator를 활용, 테이블 위젯을 만든 후 버튼을 클릭할 시 테이블 위젯에 행 추가
테이블 위젯, 버튼 생성
프로젝트 생성
Qt Creator를 실행하고 프로젝트를 생성한다.
mainwindow.ui
ui에 버튼과 테이블 위젯을 드래그하여 추가한다.
mainwindow.ui를 더블클릭 후 Push Button, Table 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을 클릭할때마다 행이 하나씩 추가된다.