我在 Qt Creator 中使用默认数据编写了一个简单的 TableView 。谁能帮我如何将自定义数据对象设置到列中?
而且我还会不断地在表中插入和删除数据。无论如何都可以在不指定行号和列号的情况下执行此操作吗?
我对 Qt 非常陌生。给出的所有示例都显示了将数据添加到相应的行和相应的列。我在 JAVAFx 中编写了这个 Tableview,从表中存储和删除数据非常容易。
我的主要代码:
#include "mainwindow.h"
#include "mydata.h"
#include <QApplication>
#include <QVariant>
#include <QTableView>
#include <QTreeView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
mydata *data=new mydata;
QVariant variant;
variant.setValue(data);
QStandardItemModel *model = new QStandardItemModel();
QStandardItem *parentItem = model->invisibleRootItem();
QStandardItem *item = new QStandardItem();
model->setColumnCount(5);
model->setRowCount(5);
model->setData(model->index(0, 0), "data1");
model->setData(model->index(0, 1), "data2");
model->setData(model->index(0, 2), "data3");
model->setData(model->index(0, 3), "data4");
model->setData(model->index(0, 4), "data5");
QTreeView *treeView = new QTreeView();
QTableView *tableView = new QTableView();
tableView->setModel(model);
item->setText(QString("some data"));
tableView->show();
return a.exec();
}
我的自定义对象:
#include "mydata.h"
#include <string>
mydata::mydata()
{
Account="finsoldts5";
Exchange="CME";
Orderstatus="Filled";
Clorid="CME";
}
我想将“mydata”类对象附加到表中,例如: 第 1 列包含帐户,第 2 列包含交易所,第 3 列包含订单状态,最后一列包含 Clordid。
每次获取这些详细信息时,如何动态地执行此操作。那就是我想在每次获取新数据时将对象添加到表的最后一行。一个完整的例子是值得理解的,因为我对 CPP 和 Qt 都很陌生。
最佳答案
您需要为您的对象创建 setter/getter ,例如..
String mydata::getAccount(){
.....
return Account;
}
然后使用类似..
QString account = QString("%1").arg(getAccount());
model->setData(model->index(0,0), account);
关于c++ - 如何在 C++ 的 Qt Creator 中向 TableView 添加自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48504246/