就像所描述的標題,當我重繪QTreeView中有一個標題(QHeaderView)的滾動條,但滾動條的高度是QTreeView的整個高度,我想讓滾動條的高度等於QTreeView則的高度減去頭的height.just像下面的圖片: 如何指定QTreeView中滾動條的高度
0
A
回答
0
用於您的問題的解決方案可能會垂直滾動條的位置設置從QHeaderView
取得的constant_offset
值(y軸上)。
這可以通過繼承來完成的QTreeView
像這樣:
class MyTreeView : public QTreeView
{
public:
MyTreeView(QWidget* parent = nullptr): QTreeView(parent){}
void updateVertScrollBar()
{
auto* ptr = verticalScrollBar();
QRect rect = ptr->geometry();
rect.setTop(header()->height());
ptr->setGeometry(rect);
}
void resizeEvent(QResizeEvent* ev) override
{
QTreeView::resizeEvent(ev);
updateVertScrollBar();
}
};
根據sizePolicy
的updateVertScrollBar
方法可以被稱爲數據填充或作爲樣本實施提出可能會出現的每個更新剛過resizeEvent
- 應該涵蓋對小部件執行的各種大小調整。
編輯
另外去除收縮的滾動條留下的空白將是棘手的。首先表示QTreeView
由視口小部件和滾動條(等等)構建而成。您現在看到的問題來自視口加垂直滾動條寬度(如果可見)應該匹配並且這是內部計算的事實。
我說過這很棘手,因爲當您嘗試強制這些組件的大小時會發生負載。一些更新被調用,一些通過事件循環被調用。您可以查看this以獲取有關此概念的更詳細信息。類似的方法可能適用於QTreeView
。
基本上你需要做的是拉伸視口寬度。這應該可能在resizeEvent
期間完成,但從那裏調用,如viewport()->setGeometry()
可能不會很好 - 你可能會陷入循環。您可以嘗試blockSignals
,但我不確定這會有所幫助。一般來說,如果你想搞亂一個給定的Qt
小部件的內部,你至少應該簡單地通過它的實現。
相關問題
- 1. 機身高度滾動條
- 2. div高度100%,滾動條
- 3. 如何指定表格的高度,使垂直滾動條出現?
- 4. jscrollpane(jquery)中的滾動條高度
- 5. 滾動條滾動過去內容(沒有指定高度,只填充底部)
- 6. 如何只滾動沒有指定高度的第二個div
- 7. 微小的滾動條自動高度
- 8. 我如何使用滾動條來固定高度,容器
- 9. 如何使div顯示滾動條(沒有固定高度)?
- 10. QTreeView水平滾動條問題
- 11. 如何獲得ListView中水平滾動條的高度
- 12. 如何爲ImageView指定動態高度?
- 13. 增加滾動條高度自動
- 14. 固定寬度框與全窗口的滾動條高度
- 15. iframe的高度和滾動條不IE11
- 16. 相對高度的完美滾動條
- 17. 如何讓高滾動條上的滾動條工作
- 18. 如果內容高度不足以滾動,如何隱藏CSS的滾動條?
- 19. 如何在javascript中獲取瀏覽器滾動條高度
- 20. 設置不同元素高度的滾動條高度
- 21. 我想比較滾動條的高度和文檔高度
- 22. 沒有滾動條的高度限制的可滾動列
- 23. 如何給滾動條,高度自動完成顯示列表?
- 24. ExtJs網格高度和滾動條eurgh
- 25. ReportViewer高度問題。隱藏滾動條
- 26. JS滾動條與流體高度
- 27. DIV高度垂直滾動條
- 28. 高度100和iframe =兩個滾動條
- 29. javascript計算滾動條高度
- 30. DIV - 100%高度導致滾動條
這是可以做到的,但在標題中有一個空白的空白,寬度等於滾動條的寬度,我怎樣才能刪除標題中的空白空白? – Lomuto
粘貼顯示您正在經歷的圖像。只有滾動條周圍的感興趣區域就足夠了。 – Dusteh
[就像這樣](https://1drv.ms/i/s!AuRlDm0ORHE_hN4McM_n9FAw1_8S8w) – Lomuto