QTableWidget 标题不显示

问题描述 投票:0回答:2

我使用 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);
}

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

qt qtablewidget
2个回答
5
投票

怎么了?

水平标题需要来自QTableWidget

的信息。当
QTableWidget
被实例化时,列数和行数都为空,因此即使您调用
setHorizontalHeaderLabels
,也不会显示标题。


解决方案

在设置标题之前插入列:

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

0
投票
对于 PyQt5,

检查是否是 self.tableWidget.horizontalHeader().setVisible(True) 而不是 self.tableWidget.horizontalHeader().setVisible(False)

不知道为什么,但是将 ui 文件转换为 py 文件后,该属性默认设置为 false。

© www.soinside.com 2019 - 2024. All rights reserved.