2010-06-24 16 views
6

Tôi đang sử dụng Chế độ xem bảng.
Tôi muốn loại bỏ ô đệm (hoặc lề) để tôi có thể siết chặt nhiều ô hơn trong không gian ít hơn. Làm thế nào điều này có thể đạt được?
Kích thước ô được đặt thành 32 pixel trên thiết kế QT, nếu tôi đặt kích thước nhỏ hơn, nội dung ô không hiển thị và dấu ba chấm xuất hiện. (...)Giảm phần đệm ô của khung nhìn hoặc lề

alt text http://img692.imageshack.us/img692/3484/tableviewpng.png

+0

Tôi đã sử dụng resizeRowsToContents() từ QTableView và nó cũng giảm chiều cao ô. – Trilarion

Trả lời

7

Đề nghị bạn sử dụng đoạn mã này:

QTableView *tableView = new QTableView(this); 

tableView->setModel(model_); 

QHeaderView *verticalHeader = tableView->verticalHeader(); 
verticalHeader->setDefaultSectionSize(verticalHeader->fontMetrics().height()+2); 

// or ... 

QHeaderView *horizontalHeader = tableView->horizontalHeader(); 
horizontalHeader->setStretchLastSection(false); 
horizontalHeader->resizeSection(/* your personal height */); 

PS: Ngoài ra tôi đã nhận thấy, rằng nếu trong tableView quá nhiều hàng hoặc cột, ví dụ khoảng 20K hàng trở lên, chức năng này resizeSection() có thể quá chậm ...

+0

Cảm ơn! Tôi sẽ thử nó. Bảng này được cố định ở 16 x 128 ô, vì vậy tôi đoán nó sẽ không có vấn đề tốc độ. – Petruza

+0

Làm việc tuyệt vời, cảm ơn! – frmdstryr