簡體   English   中英

模擬在Qt中的QTextEdit內單擊鼠標?

[英]Simulate mouse click inside QTextEdit in Qt?

我試圖在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框上看到一個Cursor。我希望單擊光標/至少光標應該在textedit小部件內閃爍。

謝謝。

編輯:

圖片已附加 例

不需要移動鼠標指針(盡管您知道為什么需要這樣做),但是可以在文本編輯中設置光標:

editWidget->activateWindow(); // some cases require
QFocusEvent* eventFocus = new QFocusEvent(QEvent::FocusIn);
qApp->postEvent(editWidget, (QEvent*)eventFocus);

而您的editWidget是'txt'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM