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

QT`實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動(dòng)關(guān)閉

這篇具有很好參考價(jià)值的文章主要介紹了QT`實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動(dòng)關(guān)閉。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

QT實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動(dòng)關(guān)閉

前言

有的時(shí)候我們需要某些窗口實(shí)現(xiàn)超時(shí)自動(dòng)關(guān)閉,但是Qt窗口一般是多部件堆疊而成,如果常規(guī)處理,對(duì)每一個(gè)部件進(jìn)行鼠標(biāo)點(diǎn)擊事件處理顯然不太合理,我個(gè)人參考了網(wǎng)上前輩的處理方法,通過(guò)直接重新實(shí)現(xiàn)QApplication::notify函數(shù)來(lái)全局獲取鼠標(biāo)點(diǎn)擊事件,最終實(shí)現(xiàn)功能。當(dāng)然也可以在QApplication中安裝事件過(guò)濾器,原理都是一樣的。

bool QApplication::notify(QObject *, QEvent *); 先了解一下這個(gè)函數(shù),所有事件都會(huì)經(jīng)過(guò)這個(gè)函數(shù)的處理。所以我們處理這個(gè)問(wèn)題的思路是重新實(shí)現(xiàn)這個(gè)函數(shù),在這個(gè)函數(shù)里判斷是否當(dāng)前的事件為鼠標(biāo)點(diǎn)擊事件,如果是,則進(jìn)行相應(yīng)的處理。

要想重新實(shí)現(xiàn)bool QApplication::notify(QObject *, QEvent *);,需要子類化QApplication,然后重載notify函數(shù)

bool CGlobalApplication::notify(QObject *obj, QEvent *e)
{
    if(e->type() == QEvent::MouseButtonPress && widget) {
        widget->guiTimerRestart();
    }

    return QApplication::notify(obj,e);
}

在這個(gè)函數(shù)里先過(guò)濾出鼠標(biāo)點(diǎn)擊事件,然后對(duì)待監(jiān)測(cè)的窗口進(jìn)行操作,所以這個(gè)時(shí)候我們需要知道待監(jiān)測(cè)窗口的指針。

采用的方式是,當(dāng)待監(jiān)測(cè)窗口被創(chuàng)建時(shí),即在待監(jiān)測(cè)窗口的構(gòu)造函數(shù)中,我們把指針傳遞給CGlobalApplication,可以通過(guò)全局指針qApp實(shí)現(xiàn)

如下以CDialogMainMenu作為待監(jiān)測(cè)窗口為例

CDialogMainMenu::CDialogMainMenu(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::CDialogMainMenu)
{
 	ui->setupUi(this);
  		      
   	auto gApp = static_cast<CGlobalApplication *>(qApp);
    if(gApp) {
        gApp->setWindowInstance(this);
    }     
}

gApp->setWindowInstance(this);通過(guò)這一步將待監(jiān)測(cè)窗口CDialogMainMenu的實(shí)例化指針傳遞給CGlobalApplication

我們?cè)倩氐?code>notify函數(shù),在這個(gè)函數(shù)里,每當(dāng)程序收到一次鼠標(biāo)點(diǎn)擊,就調(diào)用widget->guiTimerRestart();在我個(gè)人自定義函數(shù)guiTimerRestart中實(shí)現(xiàn)定時(shí)關(guān)閉窗口即可。

如果有任何疑問(wèn),歡迎提出,互相交流共同進(jìn)步。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-497657.html

到了這里,關(guān)于QT`實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動(dòng)關(guān)閉的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

  • C++實(shí)現(xiàn)【獲取鼠標(biāo)位置】以及控制鼠標(biāo)【打開(kāi)窗口并點(diǎn)擊】

    獲取鼠標(biāo)位置的函數(shù)源代碼來(lái)自:C++【認(rèn)知系列】實(shí)時(shí)獲取鼠標(biāo)坐標(biāo)_c++ 獲取鼠標(biāo)坐標(biāo)_Zalamp的博客-CSDN博客 鼠標(biāo)點(diǎn)擊操作代碼來(lái)自: C++控制鼠標(biāo)移動(dòng)到指定位置并且左鍵點(diǎn)擊_c++鼠標(biāo)移動(dòng)_蜚語(yǔ)77的博客-CSDN博客 在特定程序中實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊操作分為兩步,第一步就是在任務(wù)欄點(diǎn)

    2024年02月12日
    瀏覽(20)
  • Python: 實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊tkinter窗口任意位置拖動(dòng)

    近期在用python的tkinter庫(kù)開(kāi)發(fā)一個(gè)GUI,在開(kāi)發(fā)接近尾聲時(shí)候,同事發(fā)現(xiàn)一個(gè)問(wèn)題:因GUI窗口較大,在他的筆記本上不能全部展示,而且只能通過(guò)點(diǎn)擊頂部狀態(tài)欄才能拖動(dòng),這樣即使鼠標(biāo)已經(jīng)在屏幕最頂部,也無(wú)法看到窗口底部的控件。 一個(gè)解決方法就是:窗口及控件可以自適

    2024年02月11日
    瀏覽(31)
  • QT實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單(帶圖標(biāo))

    QT實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單(帶圖標(biāo))

    最近在開(kāi)發(fā)項(xiàng)目時(shí)用到鼠標(biāo)右鍵創(chuàng)建菜單的功能,在此做一些記錄。 功能描述:QT實(shí)現(xiàn)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單,菜單帶圖標(biāo),并且可以點(diǎn)擊菜單欄選項(xiàng),出現(xiàn)相應(yīng)的界面。效果如下圖所示: 實(shí)現(xiàn)原理:要實(shí)現(xiàn)上圖效果,我用到QMenu,創(chuàng)建菜單項(xiàng),將菜單項(xiàng)加入菜單,然后關(guān)聯(lián)

    2024年02月15日
    瀏覽(22)
  • Qt隱藏標(biāo)題欄,鼠標(biāo)實(shí)現(xiàn)窗口右下角放縮窗口

    重寫(xiě)鼠標(biāo)移動(dòng)事件就可以了,如果想實(shí)現(xiàn)其它位置的縮放,可以自己根據(jù)鼠標(biāo)的位置來(lái)實(shí)現(xiàn),思路都是一樣的

    2024年02月13日
    瀏覽(19)
  • 實(shí)現(xiàn)Qwidget窗口填滿整個(gè)主窗口,并跟隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放

    實(shí)現(xiàn)Qwidget窗口填滿整個(gè)主窗口,并跟隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放

    實(shí)現(xiàn)Qwidget窗口填滿整個(gè)主窗口,并跟隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放 新建一個(gè)窗口,我想在這個(gè)窗口上放一個(gè)QWidget,并且這個(gè)QWidget能夠布滿整個(gè)窗口,還可以隨著隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放 1、首先給大家介紹一個(gè)好用的組件庫(kù):qt-material-widgets (1)開(kāi)源地址(基于QWidgets) 基于Qt Qui

    2024年02月10日
    瀏覽(23)
  • 使用python向窗口發(fā)送鼠標(biāo)點(diǎn)擊命令

    今天遇到一個(gè)問(wèn)題。公司讓用電腦在網(wǎng)頁(yè)上看個(gè)視頻。網(wǎng)頁(yè)有個(gè)判斷:一段時(shí)間沒(méi)有鼠標(biāo)活動(dòng),視頻就會(huì)暫停。于是就想,能否隔一段時(shí)間就模擬鼠標(biāo)點(diǎn)擊一下視頻暫停,再點(diǎn)一下繼續(xù)播放。省得它自己停止播放。這樣我就可以讓網(wǎng)頁(yè)窗口在后臺(tái),我去干別的。 研究了一下,

    2024年02月12日
    瀏覽(20)
  • selenium+python:點(diǎn)擊元素、alert彈框、鼠標(biāo)操作(左鍵點(diǎn)擊、右鍵點(diǎn)擊、雙擊、鼠標(biāo)懸?。⑾吕x項(xiàng)框、窗口切換等操作的處

    selenium+python:點(diǎn)擊元素、alert彈框、鼠標(biāo)操作(左鍵點(diǎn)擊、右鍵點(diǎn)擊、雙擊、鼠標(biāo)懸?。⑾吕x項(xiàng)框、窗口切換等操作的處

    driver=webdriver.Chrome() driver.maximize_window() driver.get(\\\"https://www.baidu.com/\\\") 在進(jìn)行頁(yè)面操作時(shí),需要用鼠標(biāo)進(jìn)行左鍵點(diǎn)擊、右鍵點(diǎn)擊、雙擊、鼠標(biāo)懸浮(比如鼠標(biāo)移到某個(gè)位置就會(huì)出現(xiàn)一些元素)、鼠標(biāo)拖動(dòng)等操作,這時(shí)需要導(dǎo)入ActionChains模塊 perform() 執(zhí)行所有ActionChains 中存儲(chǔ)的行為

    2024年02月05日
    瀏覽(22)
  • Qt鼠標(biāo)點(diǎn)擊事件處理:顯示鼠標(biāo)點(diǎn)擊位置(完整示例)

    Qt鼠標(biāo)點(diǎn)擊事件處理:顯示鼠標(biāo)點(diǎn)擊位置(完整示例)

    Qt 入門(mén)實(shí)戰(zhàn)教程(目錄) 前驅(qū)文章: Qt Creator 創(chuàng)建 Qt 默認(rèn)窗口程序(推薦) 事件是對(duì)各種應(yīng)用程序需要知道的由應(yīng)用程序內(nèi)部或者外部產(chǎn)生的事情或者動(dòng)作的通稱。 例如點(diǎn)擊鼠標(biāo),按下按鍵。 在Qt中使用一個(gè)對(duì)象來(lái)表示一個(gè)事件,它繼承自QEvent類。 如鼠標(biāo)事件(例如點(diǎn)擊

    2024年02月10日
    瀏覽(24)
  • Qt鼠標(biāo)懸停+懸浮窗口

    Qt鼠標(biāo)懸停+懸浮窗口

    這兩個(gè)功能,有很多辦法可以實(shí)現(xiàn),這里記一下筆者常用的。 mouseHover.h mouseHover.cpp QRImage.h QRImage.cpp MainWindow.h MainWindow.cpp

    2024年02月06日
    瀏覽(32)
  • qt 禁止點(diǎn)擊 屏蔽鼠標(biāo)事件

    我開(kāi)了一個(gè)線程上傳文件夾,用一個(gè)進(jìn)度條顯示進(jìn)度 測(cè)試 就在界面隨便點(diǎn)擊 ,也沒(méi)有出泵任何控件,沒(méi)有引發(fā)槽函數(shù),直接就崩了! 不知道為什么崩了,所以直接禁止點(diǎn)擊,蔽鼠標(biāo)事件! 主界面 進(jìn)度條 Qt::WidgetAttribute::WA_TransparentForMouseEvents 該屬性的含義是“透明掉鼠標(biāo)事

    2024年02月15日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包