我尝试在Qt中模拟QTextEdit中的鼠标单击,因为我的应用程序没有任何鼠标或键盘。这是一块嵌入式硬件板。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
w.setStyleSheet("background-color: Black;");
w.startcomthread();
w.show();
QTextEdit *txt = new QTextEdit();
txt->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
txt->setFocus();
txt->setStyleSheet("background-color: rgb(255, 255, 255,200);");
txt->setGeometry(10,20,100,30);
txt->setText("Text 1");
QCursor::setPos((txt->pos()+=QPoint(10,10)));
QMouseEvent * event1 = new QMouseEvent ((QEvent::MouseButtonPress), QPoint(10,10),
Qt::LeftButton,
Qt::LeftButton,
Qt::NoModifier);
qApp->postEvent((QObject*)txt,(QEvent *)event1);
QMouseEvent * event2 = new QMouseEvent ((QEvent::MouseButtonRelease), QPoint(10,10),
Qt::LeftButton,
Qt::LeftButton,
Qt::NoModifier);
qApp->postEvent((QObject*)txt,(QEvent *)event2);
txt->show();
return a.exec();
}当我运行应用程序时,我只在我的textedit框上看到一个光标。我希望光标被单击//至少光标应该在textedit小部件中闪烁。
谢谢。
编辑:
图像已附加

发布于 2015-06-10 13:16:32
移动鼠标指针不是必需的(尽管您知道为什么需要移动鼠标指针),但用于在文本编辑中设置光标:
editWidget->activateWindow(); // some cases require
QFocusEvent* eventFocus = new QFocusEvent(QEvent::FocusIn);
qApp->postEvent(editWidget, (QEvent*)eventFocus);你的editWidget是'txt‘。
https://stackoverflow.com/questions/30747156
复制相似问题