将存储在结构中的值打印到 Qt 表中

Printing the value stored in structure into a Qt table?

本文关键字:打印 Qt 表中 存储 结构      更新时间:2023-10-16

我有一个这样的结构或链表:

typedef struct Node
{
    int k;
    char *mesage;
    struct Node *next;
} node;

我想输入k的值,打印它,然后打开一个窗口屏幕,以表格的形式显示所有输入值,该表格将由Qt库创建。

您需要重新实现 QAbstractTableModel,然后使用 QTableWidget 访问它。

编辑:我刚刚注意到您的模型看起来基于树而不是基于表,因此您应该真正将QAbstractItemModel与QTreeView一起使用。如果你的数据真的是一棵树,那么这不会太痛苦,因为你可以使用大多数方法的默认实现。当您尝试使非树数据看起来像一棵树时,它会变得烦人。最好在开始之前通读Qt中的模型/视图编程文档。

最好的代码示例是Qt Creator附带的代码示例(例如,这个)。

Node node;
node.k = 5;
QStandardItemModel* model = new QStandardItemModel(this);
QStandardItem* item = new QStandardItem();
item->setData(node.k, Qt::DisplayRole);
model->appendRow(item);
QTableView* table = new QTableView(this);
table->setModel(model);