1

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

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

样式表指南有所帮助,但似乎缺少很多信息 - 自定义 QTableView 的示例仅提到自定义单元格背景颜色,并没有提及更改字体颜色、大小、面、网格线等。

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

干杯,

4

1 回答 1

3

项目视图中项目的呈现由委托完成。自 Qt 4.4 起,内置项目视图默认使用可样式化的委托实现(请参阅此博客文章),但您似乎希望获得更多控制权。

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

至于网格线,QTableView 有gridStyle属性。

于 2009-09-28T20:06:30.853 回答