1
我正在使用延遲加載的QTableView
控件。在自定義QAbstractItemModel和QTableView中損壞的選擇
我有成千上萬條記錄需要顯示,當我使用簡單的QListWidget
方法時,它會嚴重滯後。
現在我用化QAbstractItemModel具有以下data
方法:
QVariant MyModel::data(const QModelIndex & index, int role) const
{
int col = index.column();
int row = index.row();
if (role == Qt::DecorationRole && col == 0)
{
return getIcon(row); // icons in the first column
}
else if (role == Qt::DisplayRole && col == 1)
{
return getText(row); // text in the second column
}
else
{
return QVariant();
}
}
結果表視圖的偉大工程:它是快速和流暢。
雖然存在一個主要問題:選擇被徹底打破。
當我選擇一個項目/項目時,它們沒有突出顯示爲藍色,我需要滾動表格以便重新繪製並顯示藍色背景。 (我正在使用Windows 7.)
另外,我在選擇項目時看不到虛線的矩形。
我檢查過,表視圖的選擇模型不爲null。此外,我還研究了Qt中的其他一些模型實現,它們有類似的數據方法,但是它們沒有選擇問題。
我也試過從QAbstractTableItem
和繼承,沒有。
感謝您的幫助。