c++ - 如何更改 Qt qtableWidget 项目的间距

标签 c++ qt qtablewidget

我正在使用 Qt tableWidget 来显示带有列的项目列表。但是,此列表中的项目之间有很大的空间。

如何更改间距以使项目(仅文本)彼此更靠近?

示例截图:

enter image description here

最佳答案

可能最简单的方法是隐藏网格并根据需要的大小重新绘制它。为此,您必须创建自己的继承 QTableWidget 的类并定义自定义 paintEvent。示例代码:

void paintEvent(QPaintEvent *event)
{
    QTableWidget::paintEvent(event);
    QPainter painter(viewport());

    for (int i = 0; i < columnCount(); ++i)
    {
        int start = horizontalHeader()->sectionViewportPosition(i);
        QPoint from = QPoint(start, 0);
        QPoint to = QPoint(start, height());

        painter.drawLine(from, to);
        start += horizontalHeader()->sectionSize(i) - 10;
        from = QPoint(start, 0);
        to = QPoint(start, height());
        painter.drawLine(from, to);
    }

    for (int j = 0; j < rowCount(); ++j)
    {
        int start = verticalHeader()->sectionViewportPosition(j);
        QPoint from = QPoint(0, start);
        QPoint to = QPoint(width(), start);

        painter.drawLine(from, to);
        start += verticalHeader()->sectionSize(j) - 10;
        from = QPoint(0, start);
        to = QPoint(width(), start);
        painter.drawLine(from, to);
    }
}

关于c++ - 如何更改 Qt qtableWidget 项目的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20948096/

相关文章:

c++ - 查找图中的最短路径,有附加限制

c++ - 将 vector<unsigned char> 转换为 uint8_t*

c++ - 具有参数化读写访问器的 Q_PROPERTY

c++ - 如何将具有特定颜色的文本添加到 qtablewidget 中的垂直标题项?

c++ - 使用模板解决了多重定义

qt - Qt-等待Qprocess完成

c++ - 如果我想在运行时部署时查看图像,要加载什么 dll,还有我真正需要哪个 vc dll?

python - 如何使用 Pandas 将 QTableWidget 数据导出到 Excel?

c++ - 调整 QTableWidget 中列的大小

c++ - 将 QImage(icon) 转换为 grayScale 格式,同时保留背景