c++ - 自定义 QAbstractItemModel 和 QTableView 中的错误选择

标签 c++ qt model model-view

我正在开发具有延迟加载功能的 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();
    }
}

生成的 TableView 效果很好:它快速而流畅。

但有一个主要问题:选择完全损坏。

当我选择一个或多个项目时,它们不会立即以蓝色突出显示,我需要滚动表格以便它重新绘制并显示蓝色背景。 (我使用的是 Windows 7。)

此外,我在选择项目时没有看到虚线矩形。

查了一下,tableview的选择模型不为null。我还查看了 Qt 中的其他一些模型实现,它们具有相似的数据方法,但它们没有选择问题。

我还尝试从 QAbstractTableItemQAbstractListItem 进行子类化,没有。

在此感谢您的帮助。

最佳答案

抱歉这个愚蠢的问题...

我通过删除以下行解决了这个问题:

tableView->setRootIndex(model->index(0, 0));

关于c++ - 自定义 QAbstractItemModel 和 QTableView 中的错误选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10837094/

相关文章:

c++ - BHO/ATL/COM 中的线程。 Winapi 还是其他什么?

c++ - #12 欧拉计划 : Find the first triangle number with over 500 divisors

c++ - 如何解决错误 LNK2019 : unresolved external symbol - function?

c++ - Qt,从另一个子小部件获取子小部件内的数据

laravel - 如何在 Laravel 中查询 created_at 字段

c++ - 使用 istream/ostream 传输消息的类似网络协议(protocol)

qt - QML 视频原生大小

python - 如何在 PyQt 中编写图像按钮?

database - 将消费者定义的聚合(例如 SQL 计数)与 'pure' 模型对象结合起来?

asp.net-mvc - 如何将TextBox的默认值设置为空字符串而不是null