Qt creator中如何用鼠标事件来实现按键响应
Qt creator中放了个按键,,现在我想用鼠标点击来实现响应,但是不想用信号槽来实现,想用鼠标按下事件来实现,请高手解答如何做??谢谢
[解决办法]
mousePressEvent()里面,判断if(m_pushButton->hasFocus()),然后在里面进行事件处理。
[解决办法]
应该是自定义了一个button
类似于
- C/C++ code
QPushButton *m_pushButton=new QPushButton
[解决办法]
[解决办法]
你贴下你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;}