在linux中生成鼠标按钮

时间:2013-07-04 12:31:13

标签: 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::MouseButtonRelease, QCursor::pos(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::postEvent(this, klik2);

但它不起作用。它必须在linux上工作,我发现很多windows的例子,但是linux的任何东西都不起作用:(

抱歉我的英文不好

[编辑]

我对QTest没什么问题。以下是compilator errors

的屏幕截图

2 个答案:

答案 0 :(得分:2)

也许您可以使用QTest::mouseClick根据文档模拟鼠标点击次数。

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

button = new QPushButton("testPushButton", this);
connect(button, SIGNAL(clicked()), this, SLOT(clickedButton()));
QTest::mouseClick(button, Qt::LeftButton);

正如yankee2905所说,您必须将 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);

答案 1 :(得分:1)

从您的屏幕截图中,您似乎没有在qmake文件中添加“testlib”。您需要开始使用QTest组件。

这样的事情:

qmake test.pro QT+=testlib