QT clicked点击事件可用什么信号来代替
就是我们鼠标点击下去发出一个clicked信号,但是此时假设我们没有鼠标,要实现一个clicked相同效果的信号和功能,要如何实现呢。。。
------最佳解决方案--------------------Windows还是Linux?
如果是Windows,直接调用windows 的API,调动鼠标API。
------其他解决方案-------------------- mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
------其他解决方案--------------------是linux的
我用QMouseEvent也不行
QMouseEvent *event = new QMouseEvent(QEvent::KeyPress,QApplication::focusWidget->pos,Qt::LeftButton,Qt::NoButton,Qt::NoModifier);
QCoreApplication::sendEvent(focusWidget(),event);
但是还是不行啊。。
------其他解决方案--------------------这是QT;
我本来是把他当做enter键,但是后面功能需要,这样不行
------其他解决方案--------------------不行的。这是需要设备底层支持的。
你需要调用对应桌面系统的鼠标Api。Qt的API是无法实现的。
------其他解决方案--------------------不是吧。。这么悲催,我这里是用飞梭,按下去的按键,发出一个信号,我想让他和和clicked一样,因为本来是用鼠标的,现在改成飞梭。
------其他解决方案--------------------
我了解你是Qt.之前我做2年的Qt.
------其他解决方案--------------------我用Qt做过一个在平板和触屏手机上控制PC,windows的开源项目,鼠标点击事件只能模拟,依赖于PC端OS桌面提供的
鼠标API。
------其他解决方案--------------------飞梭有三个键,左,右,和确定键,发出三个不同的信号,当我们左右旋转的时候旋转不同的按钮,对于Button来说,我们按下确定键的时候可以和键盘的enter一样,但是对于spinBox来说,我们要先确定键按下来选中,然后左右旋转改变值,改完后再按确定键跳出来。这样enter就不行了。。不知道大师听懂没,有没有什么好的建议。
------其他解决方案--------------------
那鼠标事件要怎么模拟呢?
------其他解决方案--------------------
问题解决了,原来:QEvent::KeyPress,这边写错了,看来复制很恶心,不能偷懒啊。。改为:QEvent::MouseButtonPress就OK了。。