2012-04-13 125 views
0

我有QTableView有少量的行和大約10列。 我爲verticalHeader()設置了QHeaderView :: ResizeToContents resizeMode。 但它只適用於可見行。 例如,如果tableView向右滾動並且某些數據已更改,則行的高度會變小。並且在tableView被向後滾動之後,行的高度對於之前不可見的單元來說仍然太小。 我發現重新實現sizeHintForRow(int row)可以解決這個問題。但是我無法找到使用頂級函數來計算單元(包括不可見的細胞)高度上的一個好辦法...如何計算QTableView行高。 QHeaderView :: ResizeToContents不可見的行/列

我可以用原來的QTableView中:: sizeHintForRow()。我只需要改變它的一小部分。但它調用d-> viewOptionsV4()。而在我的例子中,我只能得到QStyleOptionViewItemV1。但僅僅用這個對象來計算itemDelegate的正確sizeHint是不夠的。

有關計算細胞高度的最佳方法的任何想法?

回答

0

好吧,我重新實現了QTableView :: sizeHintForRow()。大小提示的計算方式與原始方法相同,但爲此,我必須在viewOptions()方法和其他設置的幫助下初始化QStyleOptionViewItemV4。

你有更好的解決方案嗎?