码迷,mamicode.com
首页 > 移动开发 > 详细

Qt on Android:QTableView不显示选中虚框

时间:2014-05-21 16:28:24      阅读:327      评论:0      收藏:0      [点我收藏+]

标签:qt   qt for android   qtableview   qlistview   android   

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



Qt on Android:QTableView不显示选中虚框,布布扣,bubuko.com

Qt on Android:QTableView不显示选中虚框

标签:qt   qt for android   qtableview   qlistview   android   

原文地址:http://blog.csdn.net/foruok/article/details/26286905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!