What is the purpose of the QAbstractButton::checkStateSet() method?

Posted by darkadept on Stack Overflow See other posts from Stack Overflow or by darkadept
Published on 2010-05-29T13:41:25Z Indexed on 2010/05/29 13:42 UTC
Read the original article Hit count: 214

Filed under:

I'm writing my own 4 state button and I'm not quite sure what to put in the checkStateSet() method, if anything.

Here is what I've got so far:

SyncDirectionButton::SyncDirectionButton(QWidget *parent) :

QAbstractButton(parent) { setCheckable(true); setToolTip(tr("Click to change the sync direction")); _state = NoSync; }

void SyncDirectionButton::paintEvent(QPaintEvent *e)
{

static QPixmapCache::Key noneKey; static QPixmapCache::Key bothKey; static QPixmapCache::Key leftKey; static QPixmapCache::Key rightKey;

QPainter p(this);

QPixmap pix; if (checkState() == SyncLeft) { if (!QPixmapCache::find(leftKey, &pix)) { pix.load(":/icons/sync-left.png"); leftKey = QPixmapCache::insert(pix); } } else if (checkState() == SyncBoth) { if (!QPixmapCache::find(rightKey, &pix)) { pix.load(":/icons/sync-right.png"); rightKey = QPixmapCache::insert(pix); } } else if (checkState() == SyncRight) { if (!QPixmapCache::find(bothKey, &pix)) { pix.load(":/icons/sync-both.png"); bothKey = QPixmapCache::insert(pix); } } else if (checkState() == NoSync) { if (!QPixmapCache::find(noneKey, &pix)) { pix.load(":/icons/application-exit.png"); noneKey = QPixmapCache::insert(pix); } } p.drawPixmap(0,0,pix); }

SyncDirectionButton::DirectionState SyncDirectionButton::checkState() const
{

return _state; }

void SyncDirectionButton::setCheckState(DirectionState state)
{

setChecked(state != NoSync); if (state != _state) { _state = state; } }

QSize SyncDirectionButton::sizeHint() const
{

return QSize(180,90); }

void SyncDirectionButton::checkStateSet()
{

}

void SyncDirectionButton::nextCheckState()
{

setCheckState((DirectionState)((checkState()+1)%4)); }

© Stack Overflow or respective owner

Related posts about qt