QTableView在第一个列标题之前有额外的列分隔符

时间:2019-06-25 17:45:33

标签: c++ qt

我正在Mac桌面上执行Qt。我有一个QTableView。在第一列之前的标题中似乎有一个额外的列分隔符。查看屏幕截图。

enter image description here

您可以在“名称”之前看到我的意思。好像在第0列之前有一个0宽度的列。我猜这是为了允许行标题,而我没有。那只是一个猜测。

是否有可能摆脱这种情况?我不知道我是在做某件事导致这种情况,还是不做某件事来抑制它,或者我无能为力。

我已经包含了headerData()方法。

/**
 * Return header.
 */
QVariant
SetupDevicesModel::headerData(int section, Qt::Orientation orientation, int role) const {
    QVariant retVal;
    if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
        switch (section) {
            case 0: retVal = QString("Name"); break;
            case 1: retVal = QString("Phone Number"); break;
            case 2: retVal = QString("IP Host"); break;
            case 3: retVal = QString("IP Port"); break;
            case 4: retVal = QString("Video Stream"); break;
        }
    }

    return retVal;
}

1 个答案:

答案 0 :(得分:0)

我认为这是具有垂直标题的结果。垂直标题可以完全用QTableView::verticalHeader()->hide();

隐藏

QTableView的左上角实际上是一个按钮,可用于选择表中的所有单元格。可以使用QTableView::setCornerButtonEnabled(false)禁用该按钮,但这不会隐藏该按钮或更改外观。

应用程序的样式也有影响。例如,使用“融合”样式,您可能看不到多余的行。应该可以使用自定义样式或绘画来隐藏该行,但是如果您仍然不需要垂直标题,则删除该行的最简单方法是隐藏标题。