首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QStringList到QList<QStandardItem *>

QStringList到QList<QStandardItem *>
EN

Stack Overflow用户
提问于 2019-06-10 22:16:48
回答 2查看 498关注 0票数 0

我在QStringList中有一个列表,其中包含一些类似如下的项目:

代码语言:javascript
复制
("name0", "name1", "name2",...) 

我需要使用以下命令传递给QTableView:

代码语言:javascript
复制
appendRow(const QList<QStandardItem *> &) 

那么,如何让QStringList中的QList将项添加到我的表中呢?

EN

回答 2

Stack Overflow用户

发布于 2019-06-10 22:37:13

使用QTableView时,您必须使用模型。通常这是通过对QAbstractTableModel进行子类化来实现的。有关不同Qt模型的更多信息,请单击此处:https://doc.qt.io/qt-5/model-view-programming.html

如果你只想显示一个简单的表格,我建议你使用QTableWidget。API的工作原理如下:

代码语言:javascript
复制
QStringList list = QStringList() << "name0" << "name1" << "name2";

ui->tableWidget->setColumnCount(list.size());
ui->tableWidget->insertRow(ui->tableWidget->rowCount());

for (int i = 0; i < list.size(); ++i)
    ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, i,
            new QTableWidgetItem(list.at(i)));

用于在列中添加数据和添加标签的

我建议使用以下代码:

代码语言:javascript
复制
ui->tableWidget->setHorizontalHeaderLabels({"List1", "List2"});

QStringList list1 = QStringList() << "name0" << "name1" << "name2";
QStringList list2 = QStringList() << "surname0" << "surname1" << "surname2" << "surname3";

addColumn(list1);
addColumn(list2);

用于添加列的函数:

代码语言:javascript
复制
void MainWindow::addColumn(const QStringList &list)
{
    // resize rowcount as needed. qMax needs #include <QtMath>
    ui->tableWidget->setRowCount(qMax(list.size(), ui->tableWidget->rowCount()));

    ui->tableWidget->insertColumn(ui->tableWidget->columnCount());

    for (int i = 0; i < list.size(); ++i)
        ui->tableWidget->setItem(i, ui->tableWidget->columnCount() - 1, new QTableWidgetItem(list.at(i)));
}
票数 1
EN

Stack Overflow用户

发布于 2019-06-10 23:11:30

这是可行的:

代码语言:javascript
复制
QStringListModel *model = new QStringListModel({"a","b","c"});
QListView view;
view.setModel(model); 

在这种情况下,您不需要使用QStandardItemModel,它可以只是一个QListView。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56528187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档