zoukankan      html  css  js  c++  java
  • Qt之添加QLabel的点击事件

    QLabel功能为显示了一个字符串或者图片等信息,它本身没有click信号。也就不能够响应click点击事件,有什么办法来实现来,我们可以子类化QLabel,实现MouseXXXEvent。
    class MyLabel: public QLabel
    {
      Q_OBJECT
      public:
      MyLabel(QWidget * parent = 0);
      private:
      protected:
      virtual void mouseReleaseEvent(QMouseEvent * ev);
      signals:
      void clicked(void);
    };

    MyLabel::MyLabel(QWidget * parent) : QLabel(parent)
    { }
    void MyLabel::mouseReleaseEvent(QMouseEvent * ev)
    {
      Q_UNUSED(ev)
      emit clicked();
    }
    就可以QObject::connect(m_MyLabel, SIGNAL(clicked()), this, SLOT(onClicked()))了。
    实测OK。

    上面只是简单的一个实例,实际上一个完整的click点击事件,要处理down,move,releae三个事件。

    代码需要加上以下内容:

    ...
    public void MouseDownEvent(...)
    public void MouseUpEvent(...)
    public void MouseMoveEvent(...)
    ...
    摘自:响应QLabel的点击事件
    http://blog.hehehehehe.cn/a/8334.htm
    Qt 布局叠加

    The future's not set,there is no fate but what we make for ourselves.
  • 相关阅读:
    closure
    运算符优先级
    css妙用
    BFC (块级格式化上下文)
    display:table-cell 详解
    line-height深入理解
    margin collapse
    探究 CSS 解析原理
    python入门
    spring与线程安全
  • 原文地址:https://www.cnblogs.com/wang1994/p/5942949.html
Copyright © 2011-2022 走看看