我有一個簡單的QTableView中,我基本上是想效仿這樣的:PyQt的設置列寬
view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
但是,我不能實際使用,因爲這對每一個單排,這是不可接受的要求sizeHint
我的情況,因爲小部件在啓動時需要響應,並且所有行的計算都需要很長時間。因此這不是一個選項。
我知道單個列的大小是什麼,它總是相同的,並且總是具有最大高度的大小。然而,這個單元格的寬度並不總是一行中所有單元格中最寬的。我已經通過這樣做了這些細胞的正確大小,但是這顯然使所有細胞具有相同的大小,並且許多細胞現在太寬了。
view.horizontalHeader().setDefaultSectionSize(200)
view.verticalHeader().setDefaultSectionSize(100)
我也試圖設置各列的寬度,但似乎沒有任何效果上的寬度可言,像這樣:
view.setColumnWidth(0, 5)
而且,設置各列的寬度不這很好,因爲我不能預先知道他們會有多寬。
有什麼方法可以使用(或模擬)ResizeToContents
方法(如上所示),但是不需要檢查所有單元大小?
這正是我所期待的,非常感謝。只是一個後續問題。這完美地處理了列的寬度,但是,如果我嘗試對垂直標題做同樣的處理,它仍然在所有行上調用'sizeHint'。這在這種情況下並不是真正的問題,因爲我知道我想要什麼樣的高度,但是我不明白爲什麼這不僅僅看着可見的行(它是不知道會有多少行可見?)。此外,如果我將垂直標題精度設置爲ex。 2,所有的行仍然被檢查。任何見解? – Pavlin
@Pavlin,很高興你用這種方式找到一些解決辦法。我像你一樣使用它,沒有適用於行的高度,所以我不能告訴你更多。你觀察到-1,0或相同的行爲? – PRMoureu
我嘗試了各種不同的值,但都導致必須檢查所有行。不管怎麼說,多謝拉! – Pavlin