linux中鼠标点击的生成

linux中鼠标点击的生成,linux,qt,click,mouse,Linux,Qt,Click,Mouse,我正在尝试生成鼠标点击。我需要它到我的应用程序,它必须模拟鼠标点击 QMouseEvent *klik = new QMouseEvent(QEvent::MouseButtonPress, QCursor::pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); QCoreApplication::postEvent(this, klik); QMouseEvent* klik2 = new QMouseEvent(QEvent::Mou

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

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没有什么问题。这里是编译器的屏幕截图

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

例如,在我的主窗口的构造函数中:

button = new QPushButton("testPushButton", this);
connect(button, SIGNAL(clicked()), this, SLOT(clickedButton()));
QTest::mouseClick(button, Qt::LeftButton);
正如2905所说,您必须将testlib添加到.pro文件中

此外,我尝试使用您的代码,当我更改单击的位置和接收器时,其工作原理与testlib相同

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);
也许你可以用它来模拟鼠标点击

例如,在我的主窗口的构造函数中:

button = new QPushButton("testPushButton", this);
connect(button, SIGNAL(clicked()), this, SLOT(clickedButton()));
QTest::mouseClick(button, Qt::LeftButton);
正如2905所说,您必须将testlib添加到.pro文件中

此外,我尝试使用您的代码,当我更改单击的位置和接收器时,其工作原理与testlib相同

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);

从屏幕截图上看,您似乎还没有将“testlib”添加到qmake文件中。您需要它才能开始使用QTest组件

大概是这样的:

qmake test.pro QT+=testlib

从屏幕截图上看,您似乎还没有将“testlib”添加到qmake文件中。您需要它才能开始使用QTest组件

大概是这样的:

qmake test.pro QT+=testlib

它以什么方式不工作?以什么方式不工作?+1但是,包括一个完整的模块,面向测试,做一些应该与postevent一起工作的事情,而不是敲打螺母?谢谢,但我需要在我的应用程序窗口外模拟鼠标单击。我正在尝试编写按用户位置固定单击的机器人。可以编写类似于“不”的东西帽子?我认为不可能将QEvents发送到Qt事件循环之外。+1,但是,包括一个完整的模块,面向测试,要做一些应该与postevent一起工作的事情,而不是敲打一个螺母?谢谢,但我需要在我的应用程序窗口外模拟鼠标单击。我正在尝试编写按用户位置固定单击的机器人。可以编写一些诸如此类的事情?我认为不可能将QEvents发送到Qt事件循环之外。