Qt4 Qt-如何设置QTableWidget行索引从64开始,而不是从0开始?

Qt4 Qt-如何设置QTableWidget行索引从64开始,而不是从0开始?,qt4,qtablewidget,qt4.7,qt4.8,qmodelindex,Qt4,Qtablewidget,Qt4.7,Qt4.8,Qmodelindex,我有128项的结构向量。我应该将前64项放入第一个QTableWidget,将其余64项放入第二个QTableWidget。必须显示结构向量中的“索引”数字。这些是身份证号码。我已经使用ui设计器设计了我的ui,我试图更改QTableWidget的第一行编号,但没有成功。如何初始化索引从0开始的第一个tablewidget和索引从64开始的第二个tablewidget。请帮助盖兹。。。提前谢谢 请帮我解决这个问题。 我会用一张快照图像来解释清楚!这里我有两个qtablewidget。每个表小部件

我有128项的结构向量。我应该将前64项放入第一个QTableWidget,将其余64项放入第二个QTableWidget。必须显示结构向量中的“索引”数字。这些是身份证号码。我已经使用ui设计器设计了我的ui,我试图更改QTableWidget的第一行编号,但没有成功。如何初始化索引从0开始的第一个tablewidget和索引从64开始的第二个tablewidget。请帮助盖兹。。。提前谢谢

请帮我解决这个问题。
我会用一张快照图像来解释清楚!这里我有两个qtablewidget。每个表小部件以行id 1开始。第二个小部件的行id不应与1相同。相反,它必须是65。因为我有128个项目,所以前64个项目进入第一个表,其余64个项目应该放在第二个表中。希望你们都理解我的要求。请帮帮我

如果问题是关于垂直标题标签,那么在QTableWidget中更改它们的最简单方法是使用QTableWidget::setVerticalHeaderLabels


QTableWidget具有更简单的API,但功能有限。例如,QAbstracteModel::setHeaderData没有操作,也没有在QTableModel中重新实现。另一种方法是使用QTableView和qabstractemview来保存数据。正如您所说,您已经在某种结构中分别拥有了数据,因此您可以对结构和QabStratemView进行子类化,以生成由QTableView显示的自定义模型。

如果问题是关于垂直标题标签,那么在QTableWidget中更改它们的最简单方法是使用QTableWidget::setVerticalHeaderLabels

QTableWidget具有更简单的API,但功能有限。例如,QAbstracteModel::setHeaderData没有操作,也没有在QTableModel中重新实现。另一种方法是使用QTableView和qabstractemview来保存数据。正如您所说,您已经在某种结构中单独拥有了数据,因此您可以将您的结构和QAbstractItemView子类化,以生成要由QTableView显示的自定义模型

#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QAbstractItemModel>

#define COL_NUM 2
#define ROW_NUM 5

int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    QTableWidget table(ROW_NUM, COL_NUM);
    QAbstractItemModel *model = table.model();
    QStringList labels;
    for (int i = 0; i < ROW_NUM; ++i) {
        /* Fill the row */
        for (int j = 0; j < COL_NUM; ++j) {
            QTableWidgetItem *item =
                new QTableWidgetItem(QString("item %1     %2").arg(i).arg(j));
            table.setItem(i, j, item);
        }
        /* Get row's vertical header label */
        QVariant data = model->headerData(i, Qt::Vertical);
        labels << QString("%1").arg(data.toInt() + 64);
        /* Apparently, two lines above can be replaced with one below */
        // labels << QString("%1").arg(65 + i);
    }
    /* Update vertical header labels */
    table.setVerticalHeaderLabels(labels);
    table.show();

    return app.exec();
}