找回密码
 立即注册

表头分隔线与表格的grid对不齐

发表于 2017-12-7 18:29:13 | 显示全部楼层 |阅读模式
10Qter豆
如下如所示,表头的分隔线和表格中的线无法对齐 我用QSS设置无法对齐,如何解决

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

tableView->verticalHeader()->setObjectName("VHeader"); tableView->horizontalHeader()->setObjectName("HHeader"); 这样应该就没有问题了 QHeaderView#VHeader::section { border-right: 1px solid gray; border-bottom:1px solid gray; border-top:0px; border-left:0px; min-width:20px; } QHeaderView#HHeader::section { border-right: 1px solid gray; border-b ...
回复

使用道具 举报

发表于 2017-12-7 18:29:14 | 显示全部楼层
本帖最后由 FantasyDJC 于 2017-12-18 09:09 编辑

tableView->verticalHeader()->setObjectName("VHeader");
tableView->horizontalHeader()->setObjectName("HHeader");
这样应该就没有问题了
QHeaderView#VHeader::section
{
        border-right: 1px solid gray;
        border-bottom:1px solid gray;
        border-top:0px;
        border-left:0px;
        min-width:20px;
}
QHeaderView#HHeader::section
{
        border-right: 1px solid gray;
        border-bottom:1px solid gray;
        border-top:0px;
        border-left:0px;
}

QTableView QTableCornerButton::section {
    background-color: rgb(0, 160, 230);
    border: 0px;
}

点评

谢谢 ,是我没描述清楚,这种方法确实可以,但是我的垂直表头是隐藏了的。。。  详情 回复 发表于 2017-12-19 09:16
回复

使用道具 举报

发表于 2017-12-12 13:51:50 | 显示全部楼层
这种情况,你可以试试这样。
tableView->horizontalHeader()->setObjectName("HHeader");
QHeaderView#HHeader::section
{
        border-right: 1px solid gray;
        border-bottom:1px solid gray;
        border-top:0px;
        border-left:0px;
}
应该就能解决你的问题。

点评

我的表头左边和上面也有1px的线 只要左边有1px就会对不齐  详情 回复 发表于 2017-12-14 15:29
回复

使用道具 举报

 楼主| 发表于 2017-12-14 15:29:59 | 显示全部楼层
FantasyDJC 发表于 2017-12-12 13:51
这种情况,你可以试试这样。
tableView->horizontalHeader()->setObjectName("HHeader");
QHeaderView#HHea ...

我的表头左边和上面也有1px的线 只要左边有1px就会对不齐
回复

使用道具 举报

 楼主| 发表于 2017-12-19 09:16:36 | 显示全部楼层
FantasyDJC 发表于 2017-12-18 09:06
tableView->verticalHeader()->setObjectName("VHeader");
tableView->horizontalHeader()->setObjectName( ...

谢谢 ,是我没描述清楚,这种方法确实可以,但是我的垂直表头是隐藏了的。。。
回复

使用道具 举报

 楼主| 发表于 2017-12-19 10:04:18 | 显示全部楼层
最终解决方案:采用@FantasyDJC 的方案,我把垂直表头显示出来,固定为1px 通过一些颜色的设置达到隐藏的效果,下面是代码和QSS

QTableView QTableCornerButton::section {
    background: transparent;
    border: none;
    border-right: 1px solid #D8D8D8; /* 这个用来弥补最左侧的1px */
}

QHeaderView::section:horizontal {
    border: none;
    border-right: 1px solid #D8D8D8;
    color: black;
    background: transparent;
    text-align: center;
}

QHeaderView::section:vertical {
    border: none;
    color: transparent;
    background: transparent;
    min-width: 1px;
    max-width: 1px;
}

    mTableView->verticalHeader()->setDefaultSectionSize(30);
    mTableView->verticalHeader()->setSectionsClickable(false);
    mTableView->verticalHeader()->setHighlightSections(false);
    mTableView->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);

注意颜色的设置已达到隐藏不希望用户看到的元素
回复

使用道具 举报

 楼主| 发表于 2017-12-19 10:05:21 | 显示全部楼层
这是最终的效果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

一叶知秋

    主题

    帖子

    675

    积分

    Qter3级会员

    Rank: 3Rank: 3

    积分
    675

Qter3级会员

发私信

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!