Qt 模擬滑鼠事件-在兩個按鈕之間切換
if(m_last_state)
QCursor::setPos(this->mapToGlobal(QPoint(172, 309)));//按鈕1的位置
else
QCursor::setPos(this->mapToGlobal(QPoint(400, 110)));//按鈕2的位置
m_last_state = !m_last_state;
QPointF *qp = new QPointF(0, 0);
QMouseEvent *event1 = new QMouseEvent(QEvent::MouseButtonPress, *qp, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
// QApplication::sendEvent(QApplication::focusWidget(), event1);
QCoreApplication::postEvent(QApplication::focusObject(), event1);
QMouseEvent *event2 = new QMouseEvent(QEvent::MouseButtonRelease, *qp, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
// QApplication::sendEvent(QApplication::focusWidget(), event2);
QCoreApplication::postEvent(QApplication::focusObject(), event2);
sendEvent 是傳送事件函式,第一個引數是接收該事件的元物件,第二個引數是要傳送的事件;
使用postEvent時必須是QKeyEvent *
型別變數,如果是sendEvent則可以QKeyEvent
型別變數。
sendEvent的事件派發不通過事件迴圈。QApplication::sendEvent()是通過呼叫QApplication::notify(),直接進入了事件的派發和處理環節,是同步的。
sendEvent與postEvent的使用
兩個函式都是接受一個 QObject * 和一個 QEvent * 作為引數。
postEvent 的 event 必須分配在 heep 上。用完後會被Qt自動刪除
sendEvent 的 event 必須分配在 stack 上。
QMouseEvent用來構造一個模擬的滑鼠事件,建構函式中定義了事件的型別為按壓或者是釋放,pos引數是用來指定在接收該事件的元物件的事件發生位置,例子中就是指定了在兩個按鈕的之間切換 分別接收按鈕位置的點選事件;
QPos定義位置。
對於QLineEdit這種部件,可以通過setFocus()函式先讓部件獲得焦點,再把sendEvent()中的接收物件換成QWidget::focusWidget();
注意:如果只對某一個按鈕或者部件傳送事件可以直接在sendEvent函式中第一個引數中制定,例如
QApplication::sendEvent(my_PushButton1, event2);
相關文章
- css滑鼠浮劃過切換按鈕背景圖片CSS
- Qt中按鈕背景圖片的切換設定QT
- Android Fragment實現按鈕間的切換AndroidFragment
- QT經驗(一)——按鈕長按事件分析QT事件
- wx模擬滑鼠事件事件
- 模擬展示動態按鈕
- QT中使用Event Filter監聽按鈕事件,Release後按鈕不見QTFilter事件
- javascript閉包的使用–按鈕切換JavaScript
- JavaScript點選按鈕切換背景顏色JavaScript
- linux下如何模擬按鍵輸入和模擬滑鼠?Linux
- 核取方塊和切換按鈕的7個使用案例
- 點選鍵盤的next按鈕,在不同的textField之間換行
- Java GUI之建立一個只有兩個按鈕的框架JavaGUI框架
- 新增按鈕事件事件
- 點選按鈕實現狀態切換效果
- 點選按鈕實現圖片切換效果
- VB “秒錶”窗體中有兩個按鈕“開始/停止”按鈕
- css3將radio單選按鈕模擬為按鈕形狀CSSS3
- Qt5.9中QSS(qt Style Sheet)用法之一設定按鈕顏色和背景色(設定按鈕間相互間隔、設定按鈕與周圍邊緣間隔)QT
- win10虛擬機器切換滑鼠怎麼操作_win10虛擬機器內外滑鼠如何切換Win10虛擬機
- 移動端模擬hover:按鈕點選變色之後還原
- CSS3模擬實現iphone返回按鈕效果CSSS3iPhone
- 點選同一按鈕顯示隱藏切換
- 38 首頁切換研究深度按鈕加陰影效果
- dotnet X11 視窗之間傳送滑鼠訊息 模擬滑鼠輸入
- VUE按鈕啟用事件Vue事件
- 一個form兩個提交按鈕,分別提交到兩頁面ORM
- mysql MGR搭建和模擬切換演練MySql
- 點選按鈕實現切換頁面背景顏色效果
- 移動端h5模擬長按事件H5事件
- 在多個遊戲檢視間切換實現效果遊戲
- 在MVVM模式中,按鈕Click事件的繫結方法MVVM模式事件
- Qt QTtoolButton 滑鼠移動到按鈕上時,彈出選單後,按鈕的hover狀態無法恢復的問題QT
- C++ Qt開發:PushButton按鈕元件C++QT元件
- Qt控制元件精講一:按鈕QT控制元件
- Qt QMessageBox::information 自定義按鈕QTORM
- 【Flutter 專題】129 圖解 ToggleButtons 按鈕切換容器組Flutter圖解
- jQuery模擬實現滑鼠點選事件程式碼例項jQuery事件