QTableWidget标头未显示

时间:2014-07-16 17:37:04

标签: qt qtablewidget

我使用UI编辑器创建QTableWidget。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    populateFilesTable();
    connect(ui->browseButton, SIGNAL(clicked()), this, SLOT(selectDirectory()));
    connect(ui->searchButton, SIGNAL(clicked()), this, SLOT(findFiles()));
}

这显示了UI的设置方式,然后我调用了函数populateFilesTable()

功能如下:

void MainWindow::populateFilesTable()
{
    ui->filesTable->setSelectionBehavior(QAbstractItemView::SelectRows);

    QStringList labels;
    labels << tr("Filename") << tr("Size");
    ui->filesTable->setHorizontalHeaderLabels(labels);
    ui->filesTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
    ui->filesTable->verticalHeader()->hide();
    ui->filesTable->setShowGrid(true);
}

表格上没有显示标题,有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:4)

怎么了?

水平标题需要QTableWidget的信息。在实例化QTableWidget时,列计数和行计数都为空,因此即使您调用了setHorizontalHeaderLabels,也没有显示标题。


解决方案

在之前插入列>设置标题:

ui->filesTable->insertColumn(0);
ui->filesTable->insertColumn(1);

QStringList labels;
labels << tr("Filename") << tr("Size");
ui->filesTable->setHorizontalHeaderLabels(labels);