12,916
回編集
(→画像の表示) |
(→画像の表示) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
<br><br> | |||
== クリック可能なQLabel == | |||
<code>QLabel</code>クラスは、リンクの選択時やホバー時にシグナルを送信するが、押下時はシグナルを送信しない。<br> | |||
<br> | |||
以下の例では、<code>QLabel</code>クラスを継承したサブクラスを作成して、<br> | |||
<code>QLabel</code>クラスの<code>mousePressEvent</code>メソッドをオーバーライドすることにより、ラベル押下時にシグナルを送信している。<br> | |||
<syntaxhighlight lang="c++"> | |||
// QClickableLabel.h | |||
class QClickableLabel : public QLabel | |||
{ | |||
Q_OBJECT | |||
public: | |||
explicit ClickableLabel(const QString &text="", QWidget* parent=0); | |||
virtual ~ClickableLabel(); | |||
signals: | |||
void clicked(); | |||
protected: | |||
void mousePressEvent(QMouseEvent* event); | |||
}; | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="c++"> | |||
// QClickableLabel.cpp | |||
ClickableLabel::ClickableLabel(const QString &text, QWidget* parent) : QLabel(text, parent) | |||
{ | |||
} | |||
void ClickableLabel::mousePressEvent(QMouseEvent* event) | |||
{ | |||
emit clicked(); | |||
} | |||
ClickableLabel::~ClickableLabel() | |||
{ | |||
} | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||