2010-06-24 12 views
6

Używam widoku tabeli.
Chciałbym usunąć dopełnienie komórek (lub margines), aby móc wycisnąć więcej komórek na mniejszej przestrzeni. Jak można to osiągnąć?
Wielkość komórki jest ustawiona na 32 piksele na projektancie QT, jeśli ustawię ją na mniejszą, zawartość komórek nie zostanie wyświetlona i pojawi się wielokropek. (...)Zmniejszenie dopełnienia lub marginesu w widoku tabeli

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

+0

Użyłem resizeRowsToContents() z QTableView, a także zmniejszyło wysokość komórek. – Trilarion

Odpowiedz

7

polecam użyć tego kodu:

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: Również zauważyłem, że jeśli w tableView zbyt dużo wiersze lub kolumny, na przykład około 20K wierszy lub więcej, funkcja resizeSection() może być zbyt powolna ...

+0

Dzięki! Spróbuję tego. Ta tabela jest ustalona na 16 x 128 komórek, więc myślę, że nie będzie miała problemów z szybkością. – Petruza

+0

Pracował świetnie, dzięki! – frmdstryr