c++ - 如何在 C++ 的 Qt Creator 中向 TableView 添加自定义对象?

标签 c++ qt uitableview qt-creator

我在 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/

相关文章:

c++ - Qt - 序列化 "double"时出现问题

qt - 连接丢失时未检测到 QNetworkReply 错误信号

swift - 无法设置 UIImageView 的大小

c++ - 使用 QNetworkAccessManager 发送 HTTP 请求

ios - 如何调用 tableView :cellForRowAtIndexPath: safely in UITableView?

ios - 根据将随机更改的 uilabel.text 的长度设置 UILabel 宽度

c++ - C++中的预处理器指令与指令有什么区别

c++ - 如何在使用C/C++的Linux中将文件直接存储在某些连续磁盘 block 中?

C++ 重定义头文件 (winsock2.h)

c++ - 为什么结果是0?