我是QT新手,我剛剛設法使QTableView與我的模型一起工作。它固定了3列。當我打開一個窗口時,它看起來不錯,但是當我調整窗口大小時,QTableView本身被調整大小,但列的寬度保持不變。是否有任何內置的方式來使其工作?我想調整列的大小以適應QTableView的邊緣,每個窗口都調整大小。列自動調整大小QTableView
回答
有一個標頭標誌來確保QTableView的最後一列如果調整大小填滿它的父級。您可以這樣設置:
table_view->horizontalHeader()->setStretchLastSection(true);
但是,這並不會按比例調整其他列的大小。如果你想做到這一點爲好,你可以處理它的母公司正是如此的resizeEvent內:
void QParent::resizeEvent(QResizeEvent *event) {
table_view->setColumnWidth(0, this->width()/3);
table_view->setColumnWidth(1, this->width()/3);
table_view->setColumnWidth(2, this->width()/3);
QMainWindow::resizeEvent(event);
}
QParent類的QMainWindow的子類。
小工具QTableView,QTreeView及其派生類(如QTableWidget)有這個兩種有用的方法:
QHeaderView* horizontalHeader() const;
QHeaderView* verticalHeader() const;
如果一個類QHeaderView開放的文檔,你會發現,設置外觀和行爲的方法項目視圖的行或列標題。您可以通過以下方法之一解決您的問題:
void QHeaderView::stretchLastSection(bool stretch)
作爲Davy Jones提及。實施例:
QTableView *table = new QTableView(); table->horizontalHeader()->setStretchLastSection(true);
void QHeaderView::setResizeMode(ResizeMode mode)
作爲模式可以設置QHeaderView ::拉伸或QHeaderView :: ResizeToContents。
不幸的是,這種方法有一個缺點 - 應用後,您將無法手動(在GUI中)或以編程方式更改列(或行)的大小。實施例:
QTableView *table = new QTableView(); table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
,使得它們適合表格的寬度此代碼同樣stretchs各列。
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
文檔:
我想親吻你,現在只是在開玩笑;-) ..我一直在尋找這條線的這麼長時間..謝謝 –
完美...這是TableView拉伸/縮放問題的完美解決方案..真的非常感謝很多.. – Maxx
- 1. QTableView在調整主窗口大小時沒有調整大小
- 2. 的ListView列自動調整大小
- 3. NPOI自動調整大小列
- 4. css列自動調整大小問題
- 5. 自動調整jxtable列的大小
- 6. 長文本自動調整列大小
- 7. DirectShow自動調整大小
- 8. YouTube自動調整大小
- 9. 自動調整大小JTabbedPane
- 10. GridView自動調整大小
- 11. iframe自動調整大小
- 12. 自動NSView調整大小
- 13. 自動調整大小CCLabelBMFont
- 14. 自動調整大小
- 15. JTextFields自動調整大小
- 16. CStatusBarCtrl自動調整大小
- 17. 自動調整SVG大小?
- 18. DataGridView自動調整大小
- 19. FlowLayoutPanel自動調整大小
- 20. JTabbedPane自動調整大小
- 21. GtkTextView自動調整大小
- 22. 自動調整大小GtkScrolledWindow
- 23. NSScrollView自動調整大小
- 24. Android - 自動調整大小
- 25. UILabel - 自動調整大小
- 26. Jsplitpane自動調整大小
- 27. DataGridView自動調整大小,但限制最大列大小
- 28. 動態調整大小後QTableView滾動停止
- 29. WPF防止datagrid自動調整窗口大小調整大小
- 30. 調整窗口大小時自動調整TableLayoutPanel行的大小
您是否總是希望列寬相同?如果沒有,你可以通過調用table-> horizontalHeader() - > setStretchLastSection(true)來擴展最後一列的寬度。 –