首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux中生成鼠标点击

问在linux中生成鼠标点击
EN

Stack Overflow用户
提问于 2013-07-04 20:31:13
回答 2查看 2K关注 0票数 0

我正在尝试生成鼠标点击。我需要它到我的应用程序,它必须模拟鼠标点击。

代码语言:javascript
复制
QMouseEvent *klik = new QMouseEvent(QEvent::MouseButtonPress, QCursor::pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::postEvent(this, klik);
QMouseEvent* klik2 = new QMouseEvent(QEvent::MouseButtonRelease, QCursor::pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::postEvent(this, klik2);

但它不起作用。它必须在linux上工作,我找到了很多windows的例子,但linux不能工作:(

对不起,我的英语不好

编辑

我对QTest没有什么问题。以下是编译器errors的屏幕截图

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 20:46:00

也许你可以使用QTest::mouseClick,根据文档,它可以模拟鼠标点击。

例如,在MainWindow的构造函数中:

代码语言:javascript
复制
button = new QPushButton("testPushButton", this);
connect(button, SIGNAL(clicked()), this, SLOT(clickedButton()));
QTest::mouseClick(button, Qt::LeftButton);

正如yankee2905所说,您必须将testlib添加到.pro文件中。

此外,我尝试使用您的代码,当我改变点击的位置和接收器时,它的工作方式与testlib相同。

代码语言:javascript
复制
QMouseEvent *klik = new QMouseEvent(QEvent::MouseButtonPress, button->pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::postEvent(button, klik);
QMouseEvent* klik2 = new QMouseEvent(QEvent::MouseButtonRelease, button->pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::postEvent(button, klik2);
票数 2
EN

Stack Overflow用户

发布于 2013-07-04 21:36:48

从您的屏幕截图看,您似乎没有将"testlib“添加到您的qmake文件中。要开始使用QTest组件,您需要使用这些组件。

如下所示:

代码语言:javascript
复制
qmake test.pro QT+=testlib
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17470396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档