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事件
- javascript閉包的使用–按鈕切換JavaScript
- 核取方塊和切換按鈕的7個使用案例
- Qt5.9中QSS(qt Style Sheet)用法之一設定按鈕顏色和背景色(設定按鈕間相互間隔、設定按鈕與周圍邊緣間隔)QT
- Qt QMessageBox::information 自定義按鈕QTORM
- win10虛擬機器切換滑鼠怎麼操作_win10虛擬機器內外滑鼠如何切換Win10虛擬機
- 點選同一按鈕顯示隱藏切換
- 38 首頁切換研究深度按鈕加陰影效果
- 【Flutter 專題】129 圖解 ToggleButtons 按鈕切換容器組Flutter圖解
- 移動端模擬hover:按鈕點選變色之後還原
- dotnet X11 視窗之間傳送滑鼠訊息 模擬滑鼠輸入
- Qt更改按鈕樣式 (以QSpinBox使用左右按鈕樣式為例)QT
- Qt QTtoolButton 滑鼠移動到按鈕上時,彈出選單後,按鈕的hover狀態無法恢復的問題QT
- RadioButton文字按鈕間距設定,按鈕在文字右端顯示,RadioButton 右端對齊
- C++ Qt開發:PushButton按鈕元件C++QT元件
- 160個CrackMe之108 mfc程式 尋找按鈕事件,程式碼還原(上)C程式事件
- 160個CrackMe之108 mfc程式 尋找按鈕事件,程式碼還原(下)C程式事件
- 移動端h5模擬長按事件H5事件
- 建立工程,編寫一個介面有兩個按鈕的程式,通過定時器控制這兩個按鈕上的文字變化。定時器
- Qt實現一個支援QSS的Switch Button(開關按鈕)QT
- SAP:SALV重新整理按鈕事件事件
- DuiLib逆向分析の按鈕事件定位UI事件
- mysql MGR搭建和模擬切換演練MySql
- 直播軟體搭建,Android studio設計兩個介面間的切換Android
- Qt自定義開關按鈕控制元件QT控制元件
- Blazor入門100天 : 自做一個支援長按事件的按鈕元件Blazor事件元件
- 各種語言按鈕事件特徵碼事件特徵
- HTC Vive Cosmos開發——手柄按鈕事件事件
- vue-video-player,通過自定義按鈕元件實現全屏切換效果VueIDE元件
- CSS3滑鼠懸浮動畫按鈕效果CSSS3動畫
- QT樣式: QSpinBox按鈕箭頭 up-button 和 down-button變換位置QT
- vue中在父元件點選按鈕觸發子元件的事件Vue元件事件
- Reset按鈕在回發之後就不起作用
- 換個按鈕顏色, 就能增長百萬使用者?
- 請問各位大佬,vue如何實現點選按鈕切換圖片的效果?Vue
- 如何停止iPhone和Mac之間的切換?iPhoneMac
- 多個 .NET Core SDK 版本之間進行切換 global.jsonJSON