qt - QTableView中选定行的自定义颜色

标签 qt qt5 qtableview

我正在使用带有自定义模型的 QTableView,该模型继承自 QAbstractTableModel()。此模型根据显示的值更改某些单元格的前景色和背景色。
我已将选择行为设置为选择整行。

问题是当我选择一行时,整行的背景颜色变为标准橙色,文本颜色变为白色。一旦我删除了选择,它就会恢复到模型设置的状态。

我想要做的是当用户选择一行时,它的前景色和背景色不应该改变。

我尝试设置 QPalette,但找不到实现上述目标的方法。

我在 C++ 中使用 Qt 5.1.0(32 位)。

最佳答案

您可以在表 View 类中执行以下操作:

const QColor hlClr = Qt::red; // highlight color to set
const QColor txtClr = Qt::white; // highlighted text color to set

QPalette p = palette();
p.setColor(QPalette::Highlight, hlClr);
p.setColor(QPalette::HighlightedText, txtClr);
setPalette(p);

关于qt - QTableView中选定行的自定义颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19011827/

相关文章:

c++ - Qt QObject::connect()函数无法连接

qt - 如何使用 QtQuick 2 控件从资源加载 qml 文件

c++ - 使用 QString 以外的其他类型作为文字

c++ - 垂直布局 QTableView 的范例方式

c++ - Qt - QTableView - 表格行中的可点击按钮

c++ - qt - 小数和四舍五入到整数

qt - 如何使 QAbstractTableModel 的数据可检查

python - 如何在 PyQt4 中选择性地设置文本的前景色

c++ - 如何从选定行(QTableView)中获取单元格值?

c++ - QFileDialog 打开第二个(可能是父级)不需要的窗口