过滤鼠标点击在Qt内的一个类
Filtering Mouse clicks in Qt within a class
我希望能够启用和禁用过滤鼠标点击在我的整个QMainWindow按下一个按钮或一个键,这将导致过滤开始。我想在类QMainWindow
中启用事件过滤器。
我希望能够在我的类中有一个事件过滤器,我们可以调用MyWindow
,从我发现我应该创建一个新的类MouseFilter
,重新定义eventFilter(QObject* object,QEvent* event)
并将其安装在我的窗口
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MyWindow w;
w.installEventFilter(new MouseFilter());
w.show();
return a.exec();
}
是否有一种方法,我可以实现从我的对象内部的事件过滤器?
解决方案我想我可能把事情弄得太复杂了。它和创建
mousePressEvent
的子类一样简单。
void MouseFilter::mousePressEvent(QMouseEvent * event){
if(event->button() == Qt::RightButton){
qDebug() << "Right-o";
}
}
我认为你正在寻找的是mousePressEvent,你可以在MyWindow
欢呼,Rostislav .
事件过滤器用于在事件传递到另一个对象时对其进行过滤。事件处理程序允许您实现事件处理逻辑。事件过滤器也是一个事件处理程序,但它的工作方式是拦截绑定到其他对象的事件,并决定是否以及如何传递到目的地。
你想做的听起来像你只是想实现一个事件处理程序。所以不需要事件过滤器。
当你想要阻止或翻译事件,或者改变某些对象的行为,而这些对象的事件处理你不能或不想覆盖时,事件过滤器是很有用的。
相关文章:
- 我在窗口中有一个fltk Fl_Choice下拉菜单,但只能通过鼠标使用
- 如何使用 Turbo C++并行运行两个功能,一个用于键盘,一个用于鼠标?
- 发送到另一个窗口的鼠标移动消息不执行任何操作
- Qt. 忽略小部件中的任何鼠标事件,而不是另一个小部件
- 我正在制作一个自动化器,并且我需要自定义它才能在将鼠标钥匙放下时单击
- QT4.8嵌入.使用QCursor :: SetPos()调整鼠标输入会导致一个抽搐的光标
- CAD程序的数据结构.鼠标拾取和渲染一个数据
- 在 VC++ MFC 中创建另一个鼠标光标
- 当我在C++/SFML中按下鼠标按钮时,如何画一个球
- 使用鼠标在 Opengl 中绘制一个立方体
- 用鼠标在OpenCV中画一个框(使用Mat而不是IplImage)
- 在 GLUT 中用鼠标绘制一个矩形
- 创建一个从点到鼠标、OpenGL、C++的x、y的矢量
- 让多个QGraphicsItem处理一个鼠标事件
- 使用 WS_EX_NOACTIVATE 标志创建一个窗口,但在我释放鼠标之前无法拖动它
- 你如何减少cpu/帧,而有一个鼠标挂钩,而不引起鼠标拖拽?c++
- 过滤鼠标点击在Qt内的一个类
- 如何用c++编写一个基于眼动追踪的电脑鼠标
- c++中使用push_back的一个鼠标回调函数
- 有一个Quad跟随鼠标指针(没有Glut)