天下

记录修行的印记

QCheckBoxEx

//QCheckBoxEx.h
#include <QtGui/QtGui>
class QCheckBoxEx : public QAbstractButton 

public
    QCheckBoxEx(QWidget
* parent);
    
bool init(QString yes,QString no);
private:
    QPixmap m_pixmap[
2];
protected
    
void paintEvent(QPaintEvent *event); 
};


//QCheckBoxEx.cpp
#include "QCheckBoxEx.h"
QCheckBoxEx::QCheckBoxEx(QWidget
* parent) 

    setParent(parent);
    setCheckable(
true);
}

bool QCheckBoxEx::init(QString yes,QString no)
{
    m_pixmap[
0].load(no);
    m_pixmap[
1].load(yes);

    
int w = m_pixmap[0].width();
    
int h = m_pixmap[0].height();

    
if (w && h && w== m_pixmap[1].width() && h==m_pixmap[1].height())
    {
        resize(w,h);
        
return true;
    }
    
return false;
}
void QCheckBoxEx::paintEvent(QPaintEvent *event

    QPainter p(
this);
    
if (isChecked())
    {
        p.drawPixmap(
0,0,m_pixmap[1]);
    }
    
else{
        p.drawPixmap(
0,0,m_pixmap[0]);
    }
}

//使用
    m_check = new QCheckBoxEx(this);
    m_check
->init("d:\\1.jpg","d:\\0.jpg");
    
//m_check->setChecked(true);

posted on 2012-10-09 13:56 天下 阅读(222) 评论(0)  编辑 收藏 引用 所属分类: QT


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2016年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论