如何设置 QTableView 当前单元格的背景颜色?
最近我正在使用 Qt(PyQt) 的 QTableView 编写一个程序。 但我发现当前的单元格/索引(聚焦的单元格/索引,由虚线包围)与其他选定的单元格具有相同的背景颜色。
有什么办法可以让当前的cell脱颖而出呢?我正在使用 Qt Designer 设置样式表,但找不到有用的样式。
这是我的第一个问题,如果我有什么错误,请告诉我。谢谢。 还请原谅我糟糕的英语。
问候,
Recently I'm writing a program using Qt(PyQt)'s QTableView.
But I find that the current cell/index (the focused one, which surrounded by a broken line) has same background colour to other selected cells.
Is there any way to make the current cell stand out? I'm using the Qt Designer to set the stylesheet, but I can't find useful style.
This is my first question here, if I made any mistake, please tell me. Thank you.
Also please excuse my poor English.
Regards,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您使用 QTableView 有什么具体原因吗? QTableWidget,这是QTableView的简单实现,让您轻松达到想要的效果。
1) 查询 QTableWidget 的当前项目。
2)调用 QTablewidgetitem::setBackGround (也许也是前台)
Is there a specific reason why you are using QTableView? QTableWidget, which is the simple implemented QTableView, lets you achieve the desired effect easily.
1) Query QTableWidget for it's current item.
2) call QTablewidgetitem::setBackGround on it(maybe also foreground)
要更改 QTableView 中任何单元格的背景颜色,您需要从模型类的 data() 方法返回颜色(例如 QVariant(QColor(red))),但仅限于角色参数设置为 Qt 的调用::背景颜色角色。
还有另一个角色 Qt::BackgroundRole 也对我有用(在 Qt4 中)。
For to change the background color of any cell within a QTableView you need to return the color (e.g. as QVariant(QColor(red))) from your data() method of your model class, but only for calls with role parameter set to Qt::BackgroundColorRole.
There is another role Qt::BackgroundRole which is working for me too (in Qt4).