• 4769阅读
  • 13回复

询问高人,QLabe如何实现click事件? [复制链接]

上一主题 下一主题
离线twfx1027
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-18
关键词: QT4
QLabe如何实现click事件?http://blog.csdn.net/tingsking18/article/details/4071619?reload    这网站上写的看不懂啊,不知道怎么用,望高人帮助,谢谢,最好能举个简单的例子。不胜感激
离线XChinux

只看该作者 1楼 发表于: 2013-05-18
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线pxiao_xiao

只看该作者 2楼 发表于: 2013-05-18
继承QLabel 派生你自己的类 重写虚函数 mouseReleaseEvent()  从其中发出你的clicked()信号
离线jdwx

只看该作者 3楼 发表于: 2013-05-18
就为了获取一个点击事件,安装事件监视器是个好办法。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线hehuim

只看该作者 4楼 发表于: 2013-05-18
用2楼的
离线kimtaikee

只看该作者 5楼 发表于: 2013-05-18
回 3楼(jdwx) 的帖子
还是3楼的好一些,方便!

离线twfx1027

只看该作者 6楼 发表于: 2013-05-19
引用第2楼pxiao_xiao于2013-05-18 20:06发表的  :
继承QLabel 派生你自己的类 重写虚函数 mouseReleaseEvent()  从其中发出你的clicked()信号

兄弟   能给个小例子具体怎么写不?偶是新手,不是太会。谢谢哈
离线firstcong

只看该作者 7楼 发表于: 2013-05-19
用pushbutton,设置样式表,变得和label一样也可以啊
菜鸟也有翱翔的一天~~~
离线soeasy

只看该作者 8楼 发表于: 2013-05-19
天池库里有个这样的类, 继承这个类就实现了。~~
离线twfx1027

只看该作者 9楼 发表于: 2013-05-20
http://blog.csdn.net/tingsking18/article/details/4071619     我写的代码如下,点击button可以显示dialog对话框,点击label还是不行?哪位大侠指导下,谢谢。

#ifndef XIANSHIDUIHUAKUANG_H
#define XIANSHIDUIHUAKUANG_H

#include <QtGui/QWidget>
#include "ui_xianshiduihuakuang.h"

#include <QPushButton>
#include <QDialog>
#include <QLabel>

class xianshiduihuakuang : public QWidget
{
    Q_OBJECT

public:
    xianshiduihuakuang(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~xianshiduihuakuang();

protected:
     void mouseReleaseEvent(QMouseEvent *);

signals:
    void Clicked(xianshiduihuakuang*clicked);

private:
    Ui::xianshiduihuakuangClass ui;

    QDialog *dialog;

    void painUI();

    private slots:
    void shdl();
};

#endif // XIANSHIDUIHUAKUANG_H
#include "xianshiduihuakuang.h"

xianshiduihuakuang::xianshiduihuakuang(QWidget *parent, Qt::WFlags flags)
    : QWidget(parent, flags)
{
    ui.setupUi(this);
    painUI();
    
}

xianshiduihuakuang::~xianshiduihuakuang()
{

}
void xianshiduihuakuang::mouseReleaseEvent(QMouseEvent*evt)
{
    emit Clicked(this);
}
void xianshiduihuakuang::painUI()
{
    QPushButton *button = new QPushButton(this);
    button->setText("hello world");
    button->move(200,200);
    connect(button,SIGNAL(clicked()),this,SLOT(shdl()));

    QLabel *label = new QLabel(this);
    label->setText("hello wzg");
    label->move(100,100);

    connect(label,SIGNAL(clicked()),this,SLOT(shdl()));

}
void xianshiduihuakuang::shdl()
{
    dialog = new QDialog;
    dialog->show();
}
离线twfx1027

只看该作者 10楼 发表于: 2013-05-20
引用第7楼firstcong于2013-05-19 11:48发表的  :
用pushbutton,设置样式表,变得和label一样也可以啊

怎么用样式表兄弟?能写下代码吗?谢谢了
离线twfx1027

只看该作者 11楼 发表于: 2013-05-20
引用第1楼XChinux于2013-05-18 19:17发表的  :
看Tianchi库里的TcClickLabel部件。
http://www.qtcn.org/bbs/thread-htm-fid-105.html
https://github.com/qtcn/tianchi/blob/master/include/tianchi/gui/tcclicklabel.h


太多了   找不到啊版主。。。。
离线XChinux

只看该作者 12楼 发表于: 2013-05-20
https://github.com/qtcn/tianchi/blob/master/include/tianchi/gui/tcclicklabel.h
这不是头文件么,然后你找到对应的cpp文件
https://github.com/qtcn/tianchi/blob/master/src/gui/tcclicklabel.cpp

将整个库下载下来(master.tar.gz),解压开,然后在
在你的.pro中加上:
include(/your_tianchi_folder/include/tianchi/tianchi.pri)
然后将上面的.h和.cpp个文件加入到你的工程中就OK了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线twfx1027

只看该作者 13楼 发表于: 2013-05-20
引用第10楼twfx1027于2013-05-20 10:33发表的  :
怎么用样式表兄弟?能写下代码吗?谢谢了
样式表会了兄弟  谢谢     l
快速回复
限100 字节
 
上一个 下一个