【发布时间】:2016-05-26 12:56:38
【问题描述】:
我正在使用带有 QAbstractTableModel 的 QTableView。
我已将 QAbstractTableModel 子类化,并且在我的模型类中为 Qt::BackgroundRole 和 Qt::ForegroundRole 我已根据某些条件返回了一些颜色。
我已经继承了QTableView 类。
当我选择表格上的任何行/单元格时,该行/单元格以 tabelVeiw 的默认颜色突出显示,它不显示从我的模型类返回的颜色。
如何改变这种行为?如何避免/忽略 QTableView 的默认颜色,并且只使用模型类返回的颜色?
【问题讨论】:
-
任何代码示例?为什么你需要继承
QTableView? -
我将
QTableView子类化,因为在我的情况下,表格将对左键单击、双击和右键单击做出反应。没有子类化,如果我实现QWidget::customContextMenuRequested和QAbstractItemView::clicked,则使用给定的信号槽,然后如果我右键单击它也会发出 click() 信号。这就是为什么我必须继承 QTableView 并重新实现mousePressEvent以区分鼠标左键和右键 -
你应该使用
QItemDelegate来处理鼠标事件。 -
请您花时间详细说明一下好吗? :) 我只想要从我的模型类返回的 QColor/QBrush 来表示我的 TableView 单元格,而不是其他任何东西。我怎样才能做到这一点?您的详尽回答将不胜感激:)
-
Stackoverflow 不是为免费代码编写而设计的。再一次 - 您需要澄清您的问题并提供 SSCCE。您可以从 Qt 文档开始,如果有不清楚的地方,可以提出额外的问题。
标签: qt qtableview qabstracttablemodel