2010-05-06 18 views
14

Làm cách nào để hiển thị dữ liệu trên QTableWidget và đọc dữ liệu từ nó với tiêu đề?Làm thế nào tôi có thể hiển thị dữ liệu trên QTableWidget và đọc dữ liệu từ nó với tiêu đề?

+2

@ayla tài liệu Sử dụng Qt như điểm bắt đầu: http://doc.trolltech.com/4.6/qtablewidget.html#details – mosg

+0

bạn đã thử làm gì, những gì tài liệu bạn đã đọc? Man 2010 phải là ngày salad tại SO để đặt câu hỏi với nỗ lực không. :) – neuronet

Trả lời

21

1). Tạo bảng bằng mã mẫu này:

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). Thêm hàng:

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

Thưởng thức.

+2

Tôi nghĩ dòng này 'filesTable-> insertRow (hàng);' sẽ ghi đè hàng cuối cùng thay vì thêm một dòng mới, nó phải là 'filesTable-> insertRow (hàng + 1);'. 'fileNameItem' và' sizeItem' phải là một cá thể của QTableWidgetItem như sau: 'QTableWidgetItem * fileNameItem = new QTableWidgetItem; fileNameItem-> setText ("tên tệp tin"); QTableWidgetItem * sizeItem = new QTableWidgetItem; sizeItem-> setText ("kích thước mục"); ' – SIFE

+2

@SIFE Cảm ơn bạn đã trả lời. Tôi đã kiểm tra bạn bình luận với mã của tôi và không tìm thấy bất kỳ vấn đề. 'insertRow (hàng)', trong đó 'int row = filesTable-> rowCount()' hoạt động chính xác ... – mosg

+1

có vẻ như cả hai phương thức đều hoạt động chính xác. – SIFE

4

book on Qt này được cung cấp miễn phí và được viết bởi một trong những giảng viên Qt tốt nhất.
Bạn cần hiểu điều gì đó về "cách Qt" trước khi chỉ cần nhảy vào và nhấp vào trình thiết kế bố cục.

6

cột Để tạo:

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

trước khi bạn có thể chèn hàng bạn cần phải thiết lập các hàng tổng:

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

tại vòng qua hàng và cột và thiết lập dữ liệu trong mỗi

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); 
    } 
} 

để đặt tiêu đề

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

hy vọng nó sẽ giúp

Các vấn đề liên quan