首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt creator中怎么用鼠标事件来实现按键响应

2012-09-01 
Qt creator中如何用鼠标事件来实现按键响应Qt creator中放了个按键,,现在我想用鼠标点击来实现响应,但是不

Qt creator中如何用鼠标事件来实现按键响应
Qt creator中放了个按键,,现在我想用鼠标点击来实现响应,但是不想用信号槽来实现,想用鼠标按下事件来实现,请高手解答如何做??谢谢

[解决办法]
mousePressEvent()里面,判断if(m_pushButton->hasFocus()),然后在里面进行事件处理。
[解决办法]
应该是自定义了一个button

类似于

C/C++ code
QPushButton *m_pushButton=new QPushButton
[解决办法]
探讨
应该是自定义了一个button

类似于

C/C++ code
QPushButton *m_pushButton=new QPushButton



引用:

能不能讲详细一点呢?不好意思,我还是菜鸟,你说的那个m_pushButton从哪里定义出来的。。能简单举个例子吗?谢谢

[解决办法]
你贴下你mousePressEvent里面的代码出来看看。
[解决办法]
你现在的这个mousePressEvent 是响应的主窗口的QMainWindow、而不是QPushButton的mousePressEvent .
应该重写一个button类 继承QPushButton 然后响应他的mousePressEvent 事件。

给你一个例子,我是把mousePressEvent 作为信号传递的
C/C++ code
//.h文件#ifndef NEWBUTTON_H#define NEWBUTTON_H#include <QPushButton>#include <QEvent>#include <QPoint>class CustomButton : public QPushButton{    Q_OBJECTpublic:    explicit CustomButton(QWidget *parent = 0);private:    void enterEvent(QEvent *e);    void leaveEvent(QEvent *e);    signals:    void mouseEnter();    void mouseLeave();public slots:    };#endif // NEWBUTTON_H
[解决办法]
然后我直接接受这个信号就可以

C/C++ code
CustomButton *button=new CustomButton();    connect(button,SIGNAL(mouseEnter()),this,SLOT("该怎么处理就怎么处理"));
[解决办法]
声明下、我这个事件是鼠标划过事件。然后鼠标按下事件 自己去写就OK了
[解决办法]
那你装事件过滤器吧
C/C++ code
m_pushButton->installEventFilter(this);bool MainWindow::eventFilter(QObject *o, QEvent *e){    if(o == ui->pushButton)    {        if(e->type() == QEvent::MouseButtonPress)        {            //进行事件处理        }    }    return false;} 

热点排行