如何使用Qt样式表确定要定位的窗口小部件

时间:2009-09-28 15:24:26

标签: c++ qt stylesheet

我正在尝试使用Qt样式表来设置相当复杂的UI。到目前为止事情进展顺利,但我遇到了困难:

如何确定我应该针对UI的特定部分定位的窗口小部件名称?例如,如果我想更改QTableView单元格中的字体大小,我是否要编写一个针对QTableView的样式?或者QAbstractScrollArea?或者QAbstractitemDelegate?事实证明这些似乎都不起作用 - 我认为这可以做到,但是这是一个例子,可以确定小部件的神奇组合是针对UI的正确部分。

style sheet guide有所帮助,但似乎缺少大量信息 - 自定义QTableView的示例仅提及自定义单元格背景颜色,并未提及更改字体颜色,大小,面,网格线等

我在这里遗漏了什么吗?也许使用样式表是错误的方法?我当然希望不会,因为替代方案(源自QStyle)似乎要复杂得多。

干杯,

1 个答案:

答案 0 :(得分:3)

项目视图中的项目渲染由委托完成。从Qt 4.4开始,内置的项目视图默认使用样式化的委托实现(请参阅此blog post),但似乎您希望获得更多的控制权。

在这种情况下,请确保模型的data()方法返回与外观相关的ItemDataRoles的正确值(我认为Qt :: FontRole特别值得您关注)。如果这还不够,或者如果不可能,则应该继承QStyledItemDelegate并重新实现其paint()方法。

对于网格线,QTableView具有gridStyle属性。