Qt on Android:QTableView不显示选中虚框
16lz
2021-01-23
在使用 QTableView 或 QTableWidget 时,有时我们不想要选中虚框,可以实现一个 ItemDelegate ,重写 drawFocus() 和 drawCheck() 两个虚函数,然后调用 QAbstractItemView 的 setItemDelegate() 把自定义的 itemDelegate 对象传递给 QTableView 即可。需要注意的是,QAbstractItemView 不会删除你设置给它的 ItemDelegate ,需要开发者自己在合适的时候删除它。
下面是一个示例, RowDelegate 的代码:
#include <QItemDelegate>class RowDelegate : public QItemDelegate{public: RowDelegate(QObject * parent = 0) :QItemDelegate(parent) { } virtual void drawFocus(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect) const { } virtual void drawCheck(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, Qt::CheckState state) const { }};
如你所见,RowDelegate 类的 drawFocus() 和 drawCheck() 嘛事不干,这样就达到了目的。
对于 QListView 或 QListWidget ,使用上面的代码也可以去掉选中虚框。
更多相关文章
- Android混淆代码
- Android热修复原理(一)热修复框架对比和代码修复
- 如何在Android上编写高效的Java代码
- Android冷启动实现app秒开的实现代码
- Android基于多触控的图片缩放和拖动代码实现
- Android中使用代码控制Wifi及数据连接网络开关
- Android WebView中的JavaScript代码使用