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

Qt 事件 < 二 >鼠標(biāo)鍵盤事件

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

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)

鍵盤事件 (QKeyEvent)使用入門:

  1. 事件處理函數(shù): 鍵盤事件通過在 QWidget 或其派生類中實(shí)現(xiàn)事件處理函數(shù) keyPressEvent 來處理。重寫此函數(shù)以響應(yīng)按鍵動(dòng)作。

    void MyWidget::keyPressEvent(QKeyEvent *event) {
        if (event->key() == Qt::Key_Escape) {
            // 處理按下 Escape 鍵的邏輯
        }
    }
    
  2. 按鍵信息: 通過 QKeyEvent 對(duì)象可以獲取按下的鍵的信息,如鍵碼、修飾鍵狀態(tài)等。

    void MyWidget::keyPressEvent(QKeyEvent *event) {
        int key = event->key();
        Qt::KeyboardModifiers modifiers = event->modifiers();
    
        // 根據(jù)按鍵和修飾鍵狀態(tài)執(zhí)行相應(yīng)操作
    }
    
  3. 過濾事件: 如果需要攔截并過濾某些鍵盤事件,可以調(diào)用 event->accept()event->ignore() 來決定是否繼續(xù)傳遞事件。

    void MyWidget::keyPressEvent(QKeyEvent *event) {
        if (event->key() == Qt::Key_A) {
            // 處理按下 'A' 鍵的邏輯
            event->accept();  // 攔截事件
        } else {
            event->ignore();  // 繼續(xù)傳遞事件
        }
    }
    

當(dāng)涉及到Qt中的鍵盤事件和鼠標(biāo)事件時(shí),有一些更深入的主題和技術(shù),可以幫助你更好地處理用戶輸入和提高交互性。以下是一些擴(kuò)展內(nèi)容:

鍵盤事件 (QKeyEvent) 高級(jí):

  1. 組合鍵處理: Qt 提供了方便的方法來處理組合鍵,即同時(shí)按下多個(gè)鍵的情況。通過檢查 event->modifiers() 中的修飾鍵狀態(tài),可以輕松實(shí)現(xiàn)這一點(diǎn)。

    void MyWidget::keyPressEvent(QKeyEvent *event) {
        if (event->key() == Qt::Key_C && event->modifiers() == Qt::ControlModifier) {
            // 處理 Ctrl+C 組合鍵的邏輯
        }
    }
    
  2. 自定義快捷鍵: Qt 允許你定義應(yīng)用程序的全局或局部快捷鍵。使用 QShortcut 類可以輕松地為特定操作分配快捷鍵。

    QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_C), this);
    connect(shortcut, SIGNAL(activated()), this, SLOT(handleCopy()));
    
  3. 輸入法事件處理: 處理輸入法事件是支持多語言輸入和輸入法切換的關(guān)鍵。通過重寫 inputMethodEvent 函數(shù),可以處理輸入法相關(guān)的事件。

    void MyWidget::inputMethodEvent(QInputMethodEvent *event) {
        QString preedit = event->preeditString();
        // 處理預(yù)編輯字符串
    }
    

當(dāng)處理鍵盤事件和鼠標(biāo)事件時(shí),還有一些其他方面和技術(shù),可以為你的 Qt 應(yīng)用程序提供更豐富的用戶體驗(yàn):

鍵盤事件 (QKeyEvent) 擴(kuò)展:

  1. 焦點(diǎn)處理: Qt 中的小部件可以獲得焦點(diǎn),鍵盤事件通常與焦點(diǎn)關(guān)聯(lián)。通過 setFocusPolicysetFocus 函數(shù),可以控制小部件的焦點(diǎn)。

    myWidget->setFocusPolicy(Qt::ClickFocus);
    myWidget->setFocus();
    
  2. 事件過濾器: 使用事件過濾器,你可以在應(yīng)用程序中的某個(gè)地方攔截和處理鍵盤事件,而不必修改每個(gè)小部件的事件處理函數(shù)。

    bool MyEventFilter::eventFilter(QObject *obj, QEvent *event) {
        if (event->type() == QEvent::KeyPress) {
            QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
            // 處理鍵盤事件
            return true;  // 事件已處理
        }
        return false;  // 事件未處理,繼續(xù)傳遞
    }
    
  3. 輸入驗(yàn)證: 對(duì)于需要特定輸入格式的文本框,可以使用 QValidator 類來進(jìn)行輸入驗(yàn)證。

    QIntValidator *validator = new QIntValidator(0, 100, this);
    lineEdit->setValidator(validator);
    

當(dāng)處理鍵盤事件和鼠標(biāo)事件時(shí),了解修飾鍵、常用按鍵的key值以及如何處理單擊、雙擊和長(zhǎng)按等交互是很重要的。

修飾鍵(Modifiers):

修飾鍵是指與普通按鍵同時(shí)按下的鍵,它們可以修改普通按鍵的行為。在 Qt 中,常見的修飾鍵有:

  • Shift鍵(Qt::ShiftModifier): 通常用于與其他鍵一起實(shí)現(xiàn)大小寫切換、選擇范圍等功能。

    if (event->modifiers() & Qt::ShiftModifier) {
        // 處理按下Shift鍵的邏輯
    }
    
  • Ctrl鍵(Qt::ControlModifier): 用于與其他鍵組合實(shí)現(xiàn)快捷鍵操作。

    if (event->modifiers() & Qt::ControlModifier) {
        // 處理按下Ctrl鍵的邏輯
    }
    
  • Alt鍵(Qt::AltModifier): 通常與其他鍵一起用于實(shí)現(xiàn)菜單快捷鍵。

    if (event->modifiers() & Qt::AltModifier) {
        // 處理按下Alt鍵的邏輯
    }
    

常用按鍵的Key值:

在 Qt 中,每個(gè)鍵都有一個(gè)唯一的Key值,可以通過 Qt::Key 枚舉來引用。一些常見的按鍵Key值包括:

  • Enter鍵(Qt::Key_Enter): 代表標(biāo)準(zhǔn)的回車/換行鍵。
  • Tab鍵(Qt::Key_Tab): 用于在文本框中進(jìn)行焦點(diǎn)切換。
  • Esc鍵(Qt::Key_Escape): 通常用于取消操作。
  • Delete鍵(Qt::Key_Delete): 用于刪除選定的內(nèi)容。
  • Backspace鍵(Qt::Key_Backspace): 用于刪除光標(biāo)前的字符。
  • 方向鍵(Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right): 用于導(dǎo)航和選擇。

在 Qt 中,處理鍵盤按鍵的單擊、雙擊和長(zhǎng)按涉及到對(duì)鍵盤事件的處理。與鼠標(biāo)事件類似,你可以通過重寫相應(yīng)的事件處理函數(shù)來實(shí)現(xiàn)這些功能。

鍵盤按鍵單擊、雙擊、長(zhǎng)按:

要處理鍵盤按鍵的單擊,你可以使用 keyPressEvent 函數(shù),并檢查按下的鍵是否是你關(guān)心的鍵。

void MyWidget::keyPressEvent(QKeyEvent *event) {
    int key = event->key();

    // 處理按下特定鍵的邏輯
    if (key == Qt::Key_Space) {
        // 處理空格鍵單擊邏輯
    }
}

鍵盤按鍵雙擊:

Qt 沒有直接支持鍵盤按鍵的雙擊事件,但你可以通過使用 QTimer 來模擬。在 keyPressEvent 中啟動(dòng)計(jì)時(shí)器,在計(jì)時(shí)器超時(shí)后檢查是否發(fā)生了兩次按鍵。

void MyWidget::keyPressEvent(QKeyEvent *event) {
    int key = event->key();

    if (key == lastKey && key == Qt::Key_Space) {
        // 處理空格鍵雙擊邏輯
    } else {
        // 啟動(dòng)計(jì)時(shí)器
        doubleClickTimer.start(doubleClickInterval);
        lastKey = key;
    }
}

void MyWidget::handleDoubleClick() {
    // 處理雙擊邏輯
}

在這個(gè)例子中,lastKey 用于記錄上一次按下的鍵,doubleClickTimer 是一個(gè)計(jì)時(shí)器,doubleClickInterval 是兩次按鍵之間的時(shí)間間隔,超過這個(gè)間隔就認(rèn)為是兩次單擊而不是雙擊。你需要在合適的地方設(shè)置這些變量。

鍵盤按鍵長(zhǎng)按:

處理鍵盤按鍵的長(zhǎng)按可以使用 QTimer 來實(shí)現(xiàn),類似于鼠標(biāo)的長(zhǎng)按。

void MyWidget::keyPressEvent(QKeyEvent *event) {
    int key = event->key();

    if (key == Qt::Key_Space) {
        // 啟動(dòng)計(jì)時(shí)器
        longPressTimer.start(longPressInterval);
    }
}

void MyWidget::keyReleaseEvent(QKeyEvent *event) {
    int key = event->key();

    if (key == Qt::Key_Space) {
        // 停止計(jì)時(shí)器
        longPressTimer.stop();
    }
}

void MyWidget::handleLongPress() {
    // 處理長(zhǎng)按邏輯
}

在這個(gè)例子中,longPressTimer 是一個(gè)計(jì)時(shí)器,longPressInterval 是按鍵長(zhǎng)按的時(shí)間閾值。當(dāng)按鍵被按下后,啟動(dòng)計(jì)時(shí)器,當(dāng)計(jì)時(shí)器超時(shí)時(shí)觸發(fā) handleLongPress 函數(shù)。

鼠標(biāo)事件 (QMouseEvent):

入門使用

  1. 事件處理函數(shù): 鼠標(biāo)事件通過在 QWidget 或其派生類中實(shí)現(xiàn)事件處理函數(shù) mousePressEvent、mouseReleaseEvent、mouseMoveEvent 等來處理。分別對(duì)應(yīng)鼠標(biāo)按下、釋放和移動(dòng)事件。

    void MyWidget::mousePressEvent(QMouseEvent *event) {
        if (event->button() == Qt::LeftButton) {
            // 處理鼠標(biāo)左鍵按下的邏輯
        }
    }
    
  2. 鼠標(biāo)信息: QMouseEvent 提供了鼠標(biāo)事件的相關(guān)信息,如鼠標(biāo)位置、按鈕狀態(tài)等。

    void MyWidget::mouseMoveEvent(QMouseEvent *event) {
        QPoint mousePos = event->pos();
        Qt::MouseButtons buttons = event->buttons();
    
        // 根據(jù)鼠標(biāo)位置和按鈕狀態(tài)執(zhí)行相應(yīng)操作
    }
    
  3. 拖放操作: 在處理鼠標(biāo)事件時(shí),可以實(shí)現(xiàn)拖放操作。通過 event->mimeData() 獲取拖動(dòng)的數(shù)據(jù),并使用 event->acceptProposedAction() 接受拖放動(dòng)作。

    void MyWidget::dragEnterEvent(QDragEnterEvent *event) {
        if (event->mimeData()->hasFormat("application/x-dnditemdata")) {
            event->acceptProposedAction();
        }
    }
    

這些是處理 Qt 中鍵盤事件和鼠標(biāo)事件的一些建議。要注意的是,這只是一個(gè)簡(jiǎn)要的總結(jié),實(shí)際應(yīng)用中可能涉及更復(fù)雜的交互邏輯和其他事件處理。在 Qt 的文檔中可以找到更詳細(xì)的信息和示例。

高級(jí)

  1. 滾輪事件: 通過重寫 wheelEvent 函數(shù)可以捕獲滾輪事件。這對(duì)于實(shí)現(xiàn)縮放、滾動(dòng)等功能非常有用。

    void MyWidget::wheelEvent(QWheelEvent *event) {
        int delta = event->delta();
        // 處理滾輪事件
    }
    
  2. 鼠標(biāo)跟蹤: Qt 允許你啟用或禁用鼠標(biāo)跟蹤。啟用后,即使沒有按下鼠標(biāo)按鈕,也會(huì)接收到 mouseMoveEvent 事件,這對(duì)于實(shí)時(shí)跟蹤鼠標(biāo)位置非常有用。

    setMouseTracking(true);  // 啟用鼠標(biāo)跟蹤
    
  3. 自定義光標(biāo): 你可以通過使用 setCursor 函數(shù)更改鼠標(biāo)懸停在窗口上時(shí)的光標(biāo)形狀。

    setCursor(Qt::PointingHandCursor);  // 設(shè)置光標(biāo)形狀為手形
    
  4. 圖形視圖框架: 如果你使用 Qt 的圖形視圖框架(Graphics View Framework),則有特定于圖形項(xiàng)的鼠標(biāo)事件,如 mousePressEventmouseReleaseEvent

    void MyGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *event) {
        // 處理圖形項(xiàng)的鼠標(biāo)按下事件
    }
    

以上這些是關(guān)于Qt鍵盤事件和鼠標(biāo)事件更深入主題的一些建議。Qt文檔和示例代碼是學(xué)習(xí)的好資源,你可以在那里找到更多詳細(xì)信息和實(shí)際應(yīng)用。

拓展

  1. 全局鼠標(biāo)事件: 通過安裝全局事件過濾器,可以在應(yīng)用程序級(jí)別捕獲鼠標(biāo)事件,而不僅限于特定小部件。

    qApp->installEventFilter(myGlobalEventFilter);
    
  2. 手勢(shì)識(shí)別: Qt 提供了手勢(shì)框架,使你能夠處理多點(diǎn)觸摸、縮放、旋轉(zhuǎn)等手勢(shì)。

    QGesture *gesture = event->gesture(Qt::PinchGesture);
    if (gesture) {
        QPinchGesture *pinch = static_cast<QPinchGesture *>(gesture);
        qreal scaleFactor = pinch->scaleFactor();
        // 處理縮放手勢(shì)
    }
    
  3. 局部坐標(biāo)與全局坐標(biāo)轉(zhuǎn)換: 使用 mapTomapFrom 函數(shù),可以方便地在窗口、視圖和場(chǎng)景之間進(jìn)行坐標(biāo)轉(zhuǎn)換。

    QPoint localPos = myWidget->mapFromGlobal(QCursor::pos());
    

這些擴(kuò)展內(nèi)容可以幫助你更靈活地處理鍵盤事件和鼠標(biāo)事件,以滿足你應(yīng)用程序的特定需求。深入了解 Qt 的事件系統(tǒng)和相關(guān)類,將為你的交互式應(yīng)用程序提供更強(qiáng)大的功能。

鼠標(biāo)單擊、雙擊、長(zhǎng)按:

在處理鼠標(biāo)事件時(shí),通常需要考慮單擊、雙擊和長(zhǎng)按等用戶交互。Qt 提供了相應(yīng)的事件和信號(hào)來處理這些交互。

  • 單擊(Click): 使用 mousePressEvent 處理鼠標(biāo)按下事件。

    void MyWidget::mousePressEvent(QMouseEvent *event) {
        if (event->button() == Qt::LeftButton) {
            // 處理左鍵單擊邏輯
        }
    }
    
  • 雙擊(Double Click): 使用 mouseDoubleClickEvent 處理鼠標(biāo)雙擊事件。

    void MyWidget::mouseDoubleClickEvent(QMouseEvent *event) {
        if (event->button() == Qt::LeftButton) {
            // 處理左鍵雙擊邏輯
        }
    }
    
  • 長(zhǎng)按(Long Press): 使用 QTimer 來檢測(cè)鼠標(biāo)按下后一段時(shí)間的持續(xù)按住。

    void MyWidget::mousePressEvent(QMouseEvent *event) {
        if (event->button() == Qt::LeftButton) {
            pressTimer.start(1000);  // 設(shè)置定時(shí)器,1秒后執(zhí)行長(zhǎng)按邏輯
        }
    }
    
    void MyWidget::mouseReleaseEvent(QMouseEvent *event) {
        if (event->button() == Qt::LeftButton) {
            pressTimer.stop();  // 鼠標(biāo)釋放時(shí)停止定時(shí)器
        }
    }
    
    void MyWidget::handleLongPress() {
        // 處理長(zhǎng)按邏輯
    }
    

在上述代碼中,pressTimer 是一個(gè)類成員變量,它在鼠標(biāo)按下后啟動(dòng),一旦超過設(shè)定的時(shí)間就會(huì)觸發(fā) handleLongPress 函數(shù)。

這些概念和示例代碼應(yīng)該有助于更好地處理修飾鍵、常用按鍵和不同的鼠標(biāo)交互。根據(jù)具體應(yīng)用場(chǎng)景,你可以進(jìn)一步調(diào)整和擴(kuò)展這些概念。文章來源地址http://www.zghlxwxcb.cn/news/detail-799802.html

到了這里,關(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ǎ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)文章

  • 【Qt圖形視圖框架】自定義QGraphicsItem和QGraphicsView,實(shí)現(xiàn)鼠標(biāo)(移動(dòng)、縮放)及鍵盤事件、右鍵事件

    說明 在使用Qt的圖形視圖框架實(shí)現(xiàn)功能時(shí),一般會(huì)在其基礎(chǔ)上進(jìn)行自定義功能實(shí)現(xiàn)。 如:滾輪對(duì)場(chǎng)景的縮放,鼠標(biāo)拖動(dòng)場(chǎng)景中的項(xiàng),以及可以在場(chǎng)景中進(jìn)行右鍵操作等。 示例 myitem 為自定義QGraphicsItem,實(shí)現(xiàn)了邊框、重繪事件、鼠標(biāo)懸停、按鍵、右鍵菜單等功能。 myitem.h myi

    2024年02月04日
    瀏覽(32)
  • 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)
  • Qt鍵盤事件

    QKeyEvent 類用來描述一個(gè)鍵盤事件。當(dāng)鍵盤按鍵被按下或者被釋放時(shí),鍵盤事件便會(huì)被發(fā)送給擁有鍵盤輸人焦點(diǎn)的部件。 QKeyEvent 的 key() 函數(shù)可以獲取具體的按鍵,對(duì)于 Qt 中給定的所有按鍵,可以在幫助中查看 Qt: :Key 。需要特別說明的是,回車鍵在這里是 Qt::Key_Return;

    2024年02月09日
    瀏覽(21)
  • Qt鍵盤事件處理——如何在Qt中監(jiān)聽按鍵操作

    Qt鍵盤事件處理——如何在Qt中監(jiān)聽按鍵操作 在Qt中,使用鍵盤是很常見的操作。如何通過代碼來實(shí)現(xiàn)鍵盤事件的監(jiān)聽和響應(yīng)呢?本文將詳細(xì)介紹在Qt中如何監(jiān)聽鍵盤事件,并實(shí)現(xiàn)一些基本的按鍵操作。 在Qt中,所有的鍵盤事件都被封裝成了一個(gè)QKeyEvent對(duì)象,我們只需要在需要

    2024年02月11日
    瀏覽(25)
  • 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)
  • qt鼠標(biāo)事件

    鼠標(biāo)移動(dòng)事件,只要移動(dòng)鼠標(biāo),就會(huì)觸發(fā)這個(gè)函數(shù),其中,正常情況下,只有當(dāng)鼠標(biāo)在QWidget界面點(diǎn)擊鼠標(biāo)后,才會(huì)捕捉到鼠標(biāo)的坐標(biāo),那如何實(shí)現(xiàn),在不點(diǎn)擊鼠標(biāo)的情況下,也可以捕捉到鼠標(biāo)移動(dòng)事件呢? 代碼如下: 比如在主窗口QWidget下有一個(gè)父窗口Lable,在鼠標(biāo)進(jìn)入Lab

    2024年02月09日
    瀏覽(29)
  • Qt開發(fā)-鼠標(biāo)事件

    Qt開發(fā)-鼠標(biāo)事件

    個(gè)人認(rèn)為,事件機(jī)制是Qt最難以理解且最為精妙的一部分。事件主要分為兩種: 在與用戶交互時(shí)發(fā)生 。比如按下鼠標(biāo)(mousePressEvent),敲擊鍵盤(keyPressEvent)等。 系統(tǒng)自動(dòng)發(fā)生 ,比如計(jì)時(shí)器事件(timerEvent)等。 在發(fā)生事件時(shí)(比如說上面說的按下鼠標(biāo)),就會(huì)產(chǎn)生一個(gè)

    2024年02月09日
    瀏覽(28)
  • Qt5鼠標(biāo)事件

    判斷鼠標(biāo)按下了哪個(gè)鍵 本文福利, 莬 費(fèi)領(lǐng)取Qt開發(fā)學(xué)習(xí)資料包、技術(shù)視頻,內(nèi)容包括(C++語言基礎(chǔ),Qt編程入門,QT信號(hào)與槽機(jī)制,QT界面開發(fā)-圖像繪制,QT網(wǎng)絡(luò),QT數(shù)據(jù)庫編程,QT項(xiàng)目實(shí)戰(zhàn),QSS,OpenCV,Quick模塊,面試題等等)↓↓↓↓↓↓見下面↓↓文章底部點(diǎn)擊 莬 費(fèi)領(lǐng)取

    2024年02月12日
    瀏覽(23)
  • Qt 鼠標(biāo)進(jìn)入離開事件

    QEvent::Enter ? 鼠標(biāo)進(jìn)入事件,當(dāng)鼠標(biāo)進(jìn)入到窗口/控件內(nèi)部時(shí),觸發(fā)該事件,它對(duì)應(yīng)的子類是 QEnterEvent QEvent::Leave ? 鼠標(biāo)離開事件,當(dāng)鼠標(biāo)離開到窗口/控件內(nèi)部時(shí),觸發(fā)該事件 自定義一個(gè)標(biāo)簽控件 LabelX ,讓它繼承自 QLabel ,然后重寫父類的 enterEvent 和 leaveEvent 。 代碼如下:

    2024年01月24日
    瀏覽(25)
  • 【QT】鼠標(biāo)常用事件

    【QT】鼠標(biāo)常用事件

    新建項(xiàng)目 加標(biāo)簽控件 當(dāng)鼠標(biāo)進(jìn)去,顯示【鼠標(biāo)進(jìn)入】,離開時(shí)顯示【鼠標(biāo)離開】 將QLable提升成自己的控件,然后再去捕獲 添加文件 改繼承的類名 提升類 同一個(gè)父類,可以提升 效果 現(xiàn)在代碼就和Qlabel對(duì)應(yīng)起來了。 在.h中聲明,.cpp中實(shí)現(xiàn) 測(cè)試 鼠標(biāo)的移動(dòng)、按下、松開事件

    2024年02月06日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包