2015-01-09
横幅の広いチェックボックスを配置したとします。

通常、このチェックボックスのクリック可能範囲は、下図の赤で示した部分となります。

配置されたチェックボックス全域をクリックできるようにしたい場合があります。

#ifndef MYCHECKBOX_H
#define MYCHECKBOX_H
#include <QCheckBox>
class MyCheckBox : public QCheckBox
{
Q_OBJECT
protected:
bool hitButton(const QPoint &pos) const;
public:
explicit MyCheckBox(QWidget *parent = 0);
~MyCheckBox();
signals:
public slots:
};
#endif // MYCHECKBOX_H
#include "MyCheckBox.h"
MyCheckBox::MyCheckBox(QWidget *parent)
: QCheckBox(parent)
{
}
MyCheckBox::~MyCheckBox()
{
}
bool MyCheckBox::hitButton(const QPoint &pos) const
{
return QAbstractButton::hitButton(pos);
}
デザイナで、チェックボックスを右クリックし、「格上げ先を指定...」を実行します。


以上で、QCheckBoxをMyCheckBoxに格上げが完了しましたので、コンパイルして実行します。
チェックボックスの枠内のテキストが無い部分をクリックしても、チェックボックスが反応するようになります。