未调用QTableModel数据



i具有扩展QAbstractTableModel的自定义表模型。我已经实施了data()rowCount()columnCount()

这是我的模型:

point_data_view_model::point_data_view_model(QObject *parent) :
    QAbstractTableModel(parent)
{
}
int point_data_view_model::rowCount(const QModelIndex & /*parent*/) const
{
   return 2;
}
int point_data_view_model::columnCount(const QModelIndex & /*parent*/) const
{
    return 3;
}
QVariant point_data_view_model::data(const QModelIndex &index, int role) const
{
    if (role == Qt::DisplayRole)
    {
       return QString("Row%1, Column%2")
                   .arg(index.row() + 1)
                   .arg(index.column() +1);
    }
    return QVariant();
}

但是,当我想以我的表格显示表视图时,什么也不会显示。

这是表单的构造函数:

SelectWindow::SelectWindow(QWidget *parent) :
    QMainWindow(parent)
    ,ui(new Ui::SelectWindow)
{
     ui->setupUi(this);
    point_data_view_model  myModel;
    ui->tableView->setModel(&myModel);
    myModel.timerHit();
   ui->tableView->show();

}

换句话说,我的数据功能未调用。

我缺少什么?

point_data_view_model  myModel;

这是一个大问题。myModel是该构造函数的本地,当功能退出时将被破坏。您需要将该模型存储在持续存在的地方,只要您需要使用它 - SelectWindow的成员变量应该是合适的。

您正在堆栈上创建myModel。致电ui->tableView->show();后立即删除。因此,该视图失去了模型,并且没有机会致电data。您应该使用new创建myModel

point_data_view_model* myModel = new point_data_view_model();

相关内容

  • 没有找到相关文章

最新更新