i would probably do something like
class ButtonWithIcon
: public QWidget{
public:
{
l->addWidget(button_);
l->addWidget(state_);
setLayout(l);
button_->setCheckable(true);
connect(button_, SIGNAL(toggled(bool)), SLOT(onToggle(bool)));
}
private Q_SLOTS:
void onToggle(bool on)
{
state_->setPixmap(... depending on on ...);
}
};
class ButtonWithIcon : public QWidget
{
QAbstractButton *button_;
QLabel *state_;
public:
ButtonWithIcon(QWidget *parent=0) : QWidget(parent)
{
QHBoxLayout *l=new QHBoxLayout;
button_ = new QToolButton(...);
l->addWidget(button_);
state_ = new QLabel(...);
l->addWidget(state_);
setLayout(l);
button_->setCheckable(true);
connect(button_, SIGNAL(toggled(bool)), SLOT(onToggle(bool)));
}
private Q_SLOTS:
void onToggle(bool on)
{
state_->setPixmap(... depending on on ...);
}
};
To copy to clipboard, switch view to plain text mode
A drawback is that the class itself is not a subclass of QAbstractButton.
HTH
Bookmarks