【问题标题】:border and text qss settings at QTableViewQTableView 中的边框和文本 qss 设置
【发布时间】:2016-06-05 06:59:49
【问题描述】:

我正在尝试这样做:

但我在 QTableView 中设置了该样式表:

QTableView {
    gridline-color: black;
    background-color: transparent;
    }
QHeaderView {background-color: transparent;

}
QHeaderView::section{
border-style: none;
border-bottom: 1px solid rgb(0,0,0);
background-color: transparent;
margin-bottom:5px;
margin-top:5px;
}
QTableView QTableCornerButton::section {
     bottom-style:none;
     border-bottom: 1px solid rgb(0,0,0);

 }

结果是这样的:

我可以处理未来的尺寸问题,但这里有两个主要问题:

1.边框之间的列文本没有任何空格,我做了margin-top:5px;margin-bottom:5px;,但它改变了所有QHeaderView不仅QHeaderView的文本。 (解决方案是使用填充而不是边距

2.每一行都有一个右、左甚至上边框。我不想那样。

我试过了:

QTableView QTableCornerButton::section {
     border-style:none;
     border-bottom: 1px solid rgb(0,0,0);

 }

很遗憾,QTableCornerButton:section 出现问题,它不起作用...

感谢您的帮助

【问题讨论】:

  • 请注意:您无法获得只有水平网格线而没有垂直网格线的表格。必须有完整的网格或没有网格。要获得第一张图片上的内容,您必须使用自定义绘画实现委托。

标签: c++ css qt qtstylesheets


【解决方案1】:

注意:我还没有验证,这些只是尝试的建议,如果需要请上传输出

1 - “它改变了所有 QHeaderView 而不仅仅是 QHeaderView 的文本”是什么意思?

也许您希望只为 headerview 的内容(文本)设置边距:在这种情况下使用 padding 而不是边距。

QHeaderView::section{
/* your style */
padding-bottom:5px;
padding-top:5px;
}

2 - 每行都有一个右、左甚至上边框。我不想那样。

QTableView {
    /* sone additional style */
    gridline-color: cyan
    background-color: cyan
}

QTableView::item
{
    border-style: none;
    border-bottom: 1px solid rgb(0,0,0);
}

我会尝试使用边框样式(设置为无),就像您在 QHeaderView 的样式中所做的那样。

编辑:您当然必须通过代码禁用 QTableView 的 showgrid 选项才能使其成为有效的解决方案

tableView.setShowGrid(false);

【讨论】:

  • 是的,第一个解决方案很棒,但第二个没有用,它没有改变任何东西。
  • 如果去掉网格线部分?
  • 是的,我现在检查它不起作用也许我们不能用 qss 做
  • 我查看了其他帖子:无法使用 qss 获得您想要的行为。 - stackoverflow.com/questions/22455445/… - stackoverflow.com/questions/23938636/…
  • 好的,我会检查如何使用 QStyleDeleagateItem。感谢您的帮助。
猜你喜欢
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多