Я выбрал класс «A» с QT Designer. файл A.ui содержит TableView. мой вопрос: Я хочу, чтобы не делал всю обработку (traitingment) в классе A, я хочу создать другой класс B и, таким образом, сделать другое лечение. Эта обработка предназначена для отображения данных в Tableview (класс A). может получить доступ ко всем данным из TableView из другого класса В.QT, доступ ко всем данным другого класса
//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");
Там нет методы 'QAbstractItemModel: : setItem'. Возможно, вы должны использовать 'QStandardItemModel' вместо этого. Используйте 'static_cast' для его преобразования. –
это не таблицаI, а таблица, которая объявлена в A. – physics
QTableView также не имеет метода setItem. Пожалуйста, ознакомьтесь с документацией. –