在使用 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 ,使用上面的代码也可以去掉选中虚框。



更多相关文章

  1. Android混淆代码
  2. Android热修复原理(一)热修复框架对比和代码修复
  3. 如何在Android上编写高效的Java代码
  4. Android冷启动实现app秒开的实现代码
  5. Android基于多触控的图片缩放和拖动代码实现
  6. Android中使用代码控制Wifi及数据连接网络开关
  7. Android WebView中的JavaScript代码使用

随机推荐

  1. Android中的按键监听
  2. android系统设置-修改睡眠时间,修改背光强
  3. android异步加载网络图片
  4. 〖Linux〗联想K860/i Android(安卓)4.2及
  5. android根据图片的uri获取图片的物理路径
  6. android 点击空白出隐藏软键盘
  7. android SharedPreferences 详解与开发实
  8. Android(安卓)studio调试无法安装app 提
  9. Android(安卓)简易音乐动态相册(多种动画
  10. Android(安卓)创建XMl文件