国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

QT 觸控事件和鼠標(biāo)事件的分離(問題已解決)

這篇具有很好參考價(jià)值的文章主要介紹了QT 觸控事件和鼠標(biāo)事件的分離(問題已解決)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

問題:QT圖形視圖框架,QGraphicsScene中默認(rèn)接收觸控事件,會(huì)將第一個(gè)點(diǎn)當(dāng)作鼠標(biāo)事件處理。
在開發(fā)者開發(fā)的時(shí)候,可能會(huì)有這樣的需求,希望自己的觸控事件和鼠標(biāo)事件能夠分割開來。
找到的解決方法:
方案一:

setAttribute(Qt::AA_SynthesizeMouseForUnhandledTouchEvents);
setAttribute(Qt::AA_SynthesizeTouchForUnhandledMouseEvents);

問題沒有解決,修改這兩個(gè)參數(shù),也無法讓QT的觸控單擊事件有響應(yīng)。
方案二:
重寫mouse事件,調(diào)用source事件將觸控事件的強(qiáng)制轉(zhuǎn)換給過濾掉,不接收鼠標(biāo)事件,觸控單擊仍然沒有反應(yīng)。
方案三:
將事件分發(fā)寫在QGraphicsView中。
QGraphicsView中有兩個(gè)函數(shù),一個(gè)為viewportevent()一個(gè)為event(),二者都能用來接收觸控事件,但是內(nèi)部實(shí)現(xiàn)機(jī)制有所區(qū)別,viewportevent()默認(rèn)將觸控單擊第一個(gè)點(diǎn)轉(zhuǎn)為鼠標(biāo)事件,而event()分發(fā)則不會(huì)將觸控單擊的第一個(gè)點(diǎn)轉(zhuǎn)為鼠標(biāo)事件,也就是即使不重寫鼠標(biāo)事件,也不影響多點(diǎn)觸控的單擊,同樣,在QWidget重寫event()函數(shù)中也是如此,并不會(huì)默認(rèn)轉(zhuǎn)換,所以如果要實(shí)現(xiàn)觸控和鼠標(biāo)事件的分離,事件分發(fā)最好用QWidget和QGraphicsView中重寫event()函數(shù),經(jīng)過測試,問題已經(jīng)解決。文章來源地址http://www.zghlxwxcb.cn/news/detail-566104.html

bool wbView::event(QEvent *event)
{
    if(event->type()==QTouchEvent::TouchEnd||event->type()==QTouchEvent::TouchBegin||event->type()==QTouchEvent::TouchUpdate)
    {
        if(touchEvent(static_cast<QTouchEvent*>(event)))
                    return true;
    }
    return QGraphicsView::event(event);
}

到了這里,關(guān)于QT 觸控事件和鼠標(biāo)事件的分離(問題已解決)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Qt自定義控件 —— 子控件與父控件的鼠標(biāo)事件問題

    Qt自定義控件 —— 子控件與父控件的鼠標(biāo)事件問題

    目錄 0、引言: 1、問題描述: 2、解決方案: 3、解決后效果: 在 Qt自定義控件 —— 顏色選擇組合控件 https://blog.csdn.net/YMGogre/article/details/128955257 一文中我們創(chuàng)建了自定義的組合控件,在該控件中包含了三個(gè)子控件 —— QGraphicsView 、 QLineEdit 和 QPushButton 。當(dāng)我們通過 setIt

    2024年02月09日
    瀏覽(33)
  • 【QT開發(fā)筆記-基礎(chǔ)篇】| 第四章 事件QEvent | 4.4 鼠標(biāo)按下、移動(dòng)、釋放事件

    【QT開發(fā)筆記-基礎(chǔ)篇】| 第四章 事件QEvent | 4.4 鼠標(biāo)按下、移動(dòng)、釋放事件

    本章要實(shí)現(xiàn)的整體效果如下: QEvent::MouseButtonPress ? 鼠標(biāo)按下時(shí),觸發(fā)該事件,它對(duì)應(yīng)的子類是 QMouseEvent QEvent::MouseMove ? 鼠標(biāo)移動(dòng)時(shí),觸發(fā)該事件,它對(duì)應(yīng)的子類是 QMouseEvent QEvent::MouseButtonRelease ? 鼠標(biāo)釋放時(shí),觸發(fā)該事件,它對(duì)應(yīng)的子類是 QMouseEvent 本節(jié)通過兩個(gè)案例來講

    2024年02月08日
    瀏覽(30)
  • Qt實(shí)現(xiàn)桌面畫線、標(biāo)記,流暢繪制,支持鼠標(biāo)和多點(diǎn)觸控繪制

    Qt實(shí)現(xiàn)桌面畫線、標(biāo)記,流暢繪制,支持鼠標(biāo)和多點(diǎn)觸控繪制

    經(jīng)常會(huì)在網(wǎng)上直播講課或者點(diǎn)評(píng)中看到可以在課件上或者桌面上進(jìn)行畫線標(biāo)記劃重點(diǎn),其實(shí)實(shí)現(xiàn)并不難,原理就是在桌面上蓋一個(gè)透明圖層,然后根據(jù)鼠標(biāo)點(diǎn)繪制曲線。 今天分享如何通過Qt的QGraphics體系來實(shí)現(xiàn)這個(gè)功能,以前的文章已經(jīng)介紹過使用Qt進(jìn)行曲線繪制及相關(guān)原理

    2024年02月15日
    瀏覽(66)
  • 鴻蒙開發(fā)筆記(二十六):交互事件--觸摸,按鍵,鼠標(biāo),焦點(diǎn)

    鴻蒙開發(fā)筆記(二十六):交互事件--觸摸,按鍵,鼠標(biāo),焦點(diǎn)

    交互事件按照觸發(fā)類型來分類,包括觸屏事件、鍵鼠事件和焦點(diǎn)事件。 觸屏事件:手指或手寫筆在觸屏上的單指或單筆操作。 鍵鼠事件:包括外設(shè)鼠標(biāo)或觸控板的操作事件和外設(shè)鍵盤的按鍵事件。 鼠標(biāo)事件是指通過連接和使用外設(shè)鼠標(biāo)/觸控板操作時(shí)所響應(yīng)的事件。 按鍵事

    2024年01月24日
    瀏覽(22)
  • 樹莓派安裝虛擬鍵盤,解決虛擬鍵盤亂碼問題,解決MIPI DSI觸摸屏觸控漂移問題

    樹莓派安裝虛擬鍵盤,解決虛擬鍵盤亂碼問題,解決MIPI DSI觸摸屏觸控漂移問題

    當(dāng)我們買了觸摸屏后,會(huì)發(fā)現(xiàn)沒有鍵盤,還是無法輸入,因此需要虛擬鍵盤 如果你的語言和地區(qū)是中文,那么安裝虛擬鍵盤后可能顯示亂碼,所以還需要安裝中文字體 安裝完后,重啟一下。重啟后會(huì)發(fā)現(xiàn)系統(tǒng)的字體都變得清晰了,并且在菜單-附件中,會(huì)找到Keyboard 點(diǎn)擊虛擬

    2024年02月09日
    瀏覽(34)
  • Qt - Qt5事件處理(鼠標(biāo)事件)

    Qt - Qt5事件處理(鼠標(biāo)事件)

    鼠標(biāo)事件 ? 鼠標(biāo)事件包括鼠標(biāo)的移動(dòng),鼠標(biāo)鍵按下,松開,單擊,雙擊等 使用鼠標(biāo)事件時(shí),加入對(duì)應(yīng)頭文件 常見的鼠標(biāo)事件如下: QMouseEvent類包含了用于描述鼠標(biāo)事件的參數(shù)。 當(dāng)在一個(gè)窗口里按住鼠標(biāo)按鍵、或移動(dòng)、或釋放就會(huì)產(chǎn)生鼠標(biāo)事件QMouseEvent。 鼠標(biāo)移動(dòng)事件只會(huì)

    2023年04月09日
    瀏覽(20)
  • 06-5_Qt 5.9 C++開發(fā)指南_Splash 與登錄窗口(MouseEvent鼠標(biāo)事件;注冊(cè)表;加密)

    06-5_Qt 5.9 C++開發(fā)指南_Splash 與登錄窗口(MouseEvent鼠標(biāo)事件;注冊(cè)表;加密)

    一般的大型應(yīng)用程序在啟動(dòng)時(shí)會(huì)顯示一個(gè)啟動(dòng)畫面,即 Splash 窗口。Splash 窗口是一個(gè)無邊對(duì)話框,一般顯示一個(gè)圖片,展示軟件的信息。Splash 窗口顯示時(shí),程序在后臺(tái)做一些比較耗時(shí)的啟動(dòng)準(zhǔn)備工作,Splash 窗口顯示一段時(shí)間后自動(dòng)關(guān)閉,然后軟件的主窗口顯示出來。Qt有一個(gè)

    2024年02月13日
    瀏覽(34)
  • Qt透明窗口鼠標(biāo)穿透問題及解決辦法

    Qt透明窗口鼠標(biāo)穿透問題及解決辦法

    最近寫了個(gè)項(xiàng)目,需要播放視頻并在視頻上做標(biāo)記框去完成一些功能 因?yàn)橐曨l播放使用了 VLC-qt 的庫,封裝好的窗口控件 沒辦法直接在該視頻窗口上繪圖(也許可以?) 出于不想動(dòng)別人寫好的庫的想法,想著在視頻窗口上加一個(gè)透明蒙版-即一個(gè)透明窗口,在透明窗口上進(jìn)行

    2024年02月04日
    瀏覽(16)
  • Qt 事件 < 二 >鼠標(biāo)鍵盤事件

    Qt 是一個(gè)流行的 C++ 框架,用于構(gòu)建跨平臺(tái)的圖形用戶界面應(yīng)用程序。在 Qt 中,處理鍵盤事件和鼠標(biāo)事件是常見的任務(wù),因?yàn)橛脩糨斎朐诮换ナ綉?yīng)用程序中至關(guān)重要。下面是關(guān)于 Qt 鍵盤事件和鼠標(biāo)事件的學(xué)習(xí)總結(jié): 鍵盤事件 (QKeyEvent)使用入門: 事件處理函數(shù): 鍵盤事件通過

    2024年01月18日
    瀏覽(22)
  • QT學(xué)習(xí)日記12——Qt中的鼠標(biāo)事件

    QT學(xué)習(xí)日記12——Qt中的鼠標(biāo)事件

    學(xué)習(xí)視頻鏈接 最新QT從入門到實(shí)戰(zhàn)完整版|傳智教育_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1g4411H78N?p=31vd_source=0471cde1c644648fafd07b54e303c905 目錄 一、鼠標(biāo)進(jìn)入和出去事件 1.1 新建 C++ 文件 1.2 編寫代碼 1.3 操作 1.4 運(yùn)行結(jié)果 二、鼠標(biāo)點(diǎn)擊、釋放和移動(dòng)事件 2.1 修改代碼 2.2 運(yùn)行結(jié)

    2024年02月11日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包