Qt QstableView内部的QStandardItemModel

Qt QstableView内部的QStandardItemModel,qt,qtableview,qstandarditemmodel,Qt,Qtableview,Qstandarditemmodel,我在QTableView中使用QStandardItemModel。这里我有两个按钮&Qtableview在我的主窗口中。 我只需要在这里面4列。行数也会有所不同。这两个按钮将用于添加/删除行测试用例 setHorizontalHeaderItem未显示所有文本意味着所有文本均不可见。例如,如果我将“员工姓名文本”放在不完全可见的位置? 如何使QStandardItemModel占据整个QTableview宽度。目前它显示在左上角? 如何实现 代码: model= new QStandardIt

我在QTableView中使用QStandardItemModel。这里我有两个按钮&Qtableview在我的主窗口中。 我只需要在这里面4列。行数也会有所不同。这两个按钮将用于添加/删除行测试用例

setHorizontalHeaderItem未显示所有文本意味着所有文本均不可见。例如,如果我将“员工姓名文本”放在不完全可见的位置? 如何使QStandardItemModel占据整个QTableview宽度。目前它显示在左上角? 如何实现

代码:

model= new QStandardItemModel(4, 4);

    for (int row = 0; row < 4; ++row) {
        for (int column = 0; column < 4; ++column) {
            QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
            model->setItem(row, column, item);
        }
    }

    model->setHorizontalHeaderItem(0, new QStandardItem(tr("Time")));
    model->setHorizontalHeaderItem(1, new QStandardItem(tr("Text for the Employee Name")));
    model->setHorizontalHeaderItem(2, new QStandardItem(tr("Text for the Employee Address")));
    model->setHorizontalHeaderItem(3, new QStandardItem(tr("Text for the Employee Date of Birth")));

    model->setVerticalHeaderItem(0, new QStandardItem(tr("Test-Case-----1")));


因为这个问题的答案已经被接受了,我的答案可能会帮助一些人,因为上面被接受的答案对我没有帮助

QStandardItemModel *model = new QStandardItemModel(2,3,this);
//----------
ui->tableView->setModel(model);
ui->tableView->resizeColumnsToContents();

因为这个问题的答案已经被接受了,我的答案可能会帮助一些人,因为上面被接受的答案对我没有帮助

QStandardItemModel *model = new QStandardItemModel(2,3,this);
//----------
ui->tableView->setModel(model);
ui->tableView->resizeColumnsToContents();

我知道答案来得有点晚,但我只是需要做同样的事情,并想出一个不同的解决方案

要实现Qt4中的目标,需要调整QTableView标题的设置。为此,首先检索标题:

QHeaderView *header = ui->tableView->horizontalHeader();
接下来,通过调用接受logicalIndex的第二个flavor来调整各个列的大小调整模式:

在上面的示例中,我选择拉伸第3列,但您可以选择任何列处于拉伸模式

在Qt5中,您需要的调用是


希望这能帮助您或其他寻求此问题解决方案的人。

我知道答案来得有点晚,但我只是需要做同样的事情,并想出一个不同的解决方案

要实现Qt4中的目标,需要调整QTableView标题的设置。为此,首先检索标题:

QHeaderView *header = ui->tableView->horizontalHeader();
接下来,通过调用接受logicalIndex的第二个flavor来调整各个列的大小调整模式:

在上面的示例中,我选择拉伸第3列,但您可以选择任何列处于拉伸模式

在Qt5中,您需要的调用是


希望这能帮助您或其他寻求此问题解决方案的人。

此答案未满足问题此答案未满足问题
header->setResizeMode(0, QHeaderView::ResizeToContents);
header->setResizeMode(1, QHeaderView::ResizeToContents);
header->setResizeMode(2, QHeaderView::ResizeToContents);
header->setResizeMode(3, QHeaderView::Stretch);