2010-05-06 4 views

답변

21

1). 다음 예제 코드로 표를 만듭니다.

filesTable = new QTableWidget(0, 2); 
QStringList labels; 
labels << tr("File Name") << tr("Size"); 
filesTable->setHorizontalHeaderLabels(labels); 
filesTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch); 
filesTable->verticalHeader()->hide(); 
filesTable->setShowGrid(false); 

2). 행 추가 :

int row = filesTable->rowCount(); 
filesTable->insertRow(row); 
filesTable->setItem(row, 0, fileNameItem); 
filesTable->setItem(row, 1, sizeItem); 

즐기십시오.

+2

이 줄'filesTable-> insertRow (row);'는 새로운 행을 추가하는 대신 마지막 행을 덮어 쓰며,'filesTable-> insertRow (row + 1);'이어야한다고 생각합니다. 'fileNameItem'과'sizeItem'은 다음과 같이 QTableWidgetItem의 인스턴스 여야합니다 : 'QTableWidgetItem * fileNameItem = new QTableWidgetItem; fileNameItem-> setText ("파일 이름 항목"); QTableWidgetItem * sizeItem = 새로운 QTableWidgetItem; sizeItem-> setText ("size item"); ' – SIFE

+2

@SIFE 답장을 보내 주셔서 감사합니다. 나는 당신이 내 코드로 코멘트를했는지 확인하고 어떤 문제도 발견하지 못했다. 'int row = filesTable-> rowCount()'가 올바르게 작동하는'insertRow (row)'... – mosg

+1

두 메소드가 올바르게 작동하는 것처럼 보입니다. – SIFE

4

book on Qt은 최고의 Qt 트레이너 중 한 명이 무료로 사용할 수 있습니다.
레이아웃 디자이너에서 점프하고 클릭하기 전에 "Qt 방식"을 이해해야합니다.

6

만들려면 열 :

ui->tableWidget->setColumnCount('the number of columns'); 

당신이 총 행 설정해야 행을 삽입 할 수 있습니다 전에 지금 행과 열을 통해 루프를

ui->tableWidget->setRowCount('number of rows'); 

을 각

의 데이터를 설정
for (int ridx = 0 ; ridx < 'number of rows' ; ridx++) 
{ 
    for (int cidx = 0 ; cidx < 'number of columns' ; cidx++) 
    { 
     QTableWidgetItem* item = new QTableWidgetItem(); 
     item->setText('text or number to display'); 
     ui->tableWidget->setItem(ridx,cidx,item); 
    } 
} 

헤더를 설정하려면

ui->tableWidget->setHorizontalHeaderLabels('QStringList containing the names'); 

515,는 시작 지점으로 사용 Qt는 워드 프로세서 @ayla

관련 문제