C++ 在QTextEdit中的QTextEdit内模拟鼠标单击?
我试图在Qt中的C++ 在QTextEdit中的QTextEdit内模拟鼠标单击?,c++,qt,qt4.8,C++,Qt,Qt4.8,我试图在Qt中的QTextEdit中模拟鼠标单击,因为我的应用程序没有任何鼠标或键盘。这是一个嵌入式硬件板 int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint); w.setStyleSheet("background-co
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();
}
当我运行应用程序时,我只在文本编辑框上看到一个光标。我希望光标被点击/至少光标应该在文本编辑小部件内闪烁
多谢各位
编辑:
图片附呈
移动鼠标指针不是必需的(尽管您知道为什么需要移动鼠标指针),但要在文本编辑中设置光标:
editWidget->activateWindow(); // some cases require
QFocusEvent* eventFocus = new QFocusEvent(QEvent::FocusIn);
qApp->postEvent(editWidget, (QEvent*)eventFocus);
您的editWidget是“txt”。当它有焦点时,它不是默认闪烁吗?不,它不闪烁。可能是因为您先模拟鼠标单击,然后显示文本编辑。尝试先显示然后模拟单击。谢谢,但Nejat仍然不走运:(顺便说一句,Nejat是正确的。也请重试QFocusEvent,但已显示文本编辑。很抱歉,没有发生任何情况。光标不闪烁。您可以看到光标不闪烁。我可以看到,在Windows和Linux Qt应用程序上,光标都会闪烁。:)