QT,从其他类访问所有数据

QT,从其他类访问所有数据,qt,Qt,我用QT设计器选择了一个类“a”。文件A.ui包含一个TableView。 我的问题是: 我不想在类A中做所有的处理(traitement),我想创建另一个类B,从而进行其他处理。这种处理方法是在Tableview(A类)中显示数据。 我可以从另一个B类访问TableView中的所有数据吗 //A.h QStandardItemModel *table; //A.cpp table = new QStandardItemModel(10,2,this); //2 Rows and 3 Colu

我用QT设计器选择了一个类“a”。文件A.ui包含一个TableView。 我的问题是: 我不想在类A中做所有的处理(traitement),我想创建另一个类B,从而进行其他处理。这种处理方法是在Tableview(A类)中显示数据。 我可以从另一个B类访问TableView中的所有数据吗

//A.h
QStandardItemModel *table;

//A.cpp
table = new QStandardItemModel(10,2,this); //2 Rows and 3 Columns
tables->setHorizontalHeaderItem(0, new QStandardItem(QString("Number")));
table->setHorizontalHeaderItem(1, new QStandardItem(QString("Name")));
ui->tableView->setModel(table);

//B.cpp
QAbstractItemModel* tableI= ui->tableView->model();
int iRows = tableI->rowCount();
table->setItem(0,0,new  QStandardItem("100");
table->setItem(0,1,new  QStandardItem("Name 1");

您可以添加公共成员函数以从其他类访问表视图:

QTableView* A::table_view() {
  return ui->tableView;
}

它工作得很好,但当我想设置一些数据时,它就不工作了!!具体点。“设置一些数据”是什么意思?发布一些代码。没有方法
qabstractemmodel::setItem
。也许你应该改用
QStandardItemModel
。使用
static\u cast
对其进行转换。它不是表I,而是在A.QTableView中声明的表也没有
setItem
方法。请阅读文档。