「Qtのコントロール - ラベル」の版間の差分

ナビゲーションに移動 検索に移動
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>


案内メニュー