網(wǎng)頁即時聊天seo推廣怎么樣
Qt 入門實戰(zhàn)教程(目錄)
前驅文章:
Qt Creator 創(chuàng)建 Qt 默認窗口程序(推薦)
什么是事件
事件是對各種應用程序需要知道的由應用程序內部或者外部產(chǎn)生的事情或者動作的通稱。
事件(event)驅動的GUI窗口程序。
例如點擊鼠標,按下按鍵。 在Qt中使用一個對象來表示一個事件,它繼承自QEvent類。
常見事件
如鼠標事件(例如點擊一下鼠標左鍵)、鍵盤事件(例如按下鍵盤的某個鍵)、定時事件、上下文菜單事件、關閉事件、拖放事件、繪制事件。
常見事件官方介紹
?
既然事件發(fā)生了,那么我們就需要對一個事件進行處理,就像我們點擊了一下鼠標左鍵,程序就給了我們反饋一樣,那么我們通過什么來對事件進行處理呢?
事件的處理
在QWidget類中提供了很多等待我們在子類中重寫的虛函數(shù),通常,我們通過重寫這些函數(shù)來處理一些特定部件的典型事件。
當然,我們也可以通過在對象上安裝事件過濾器。使用事件過濾器可以在一個界面類中同時處理不同子部件的不同事件。
鼠標按下事件的處理(示例)
創(chuàng)建項目
首先,創(chuàng)建一個名稱為QtMousePressEvent的Qt默認的窗口程序。
參考 : Qt Creator 創(chuàng)建 Qt 默認窗口程序
添加鼠標事件響應函數(shù)
下面我們來嘗試通過響應Qt的鼠標事件來顯示鼠標的坐標。
打開Qt Creator >>編輯 >> 項目 >> Headers>> mainwindow.h
右鍵 class MainWindow >> Refactor >> Insert Virtual Function of Base Classes
如下圖所示:
選擇 QWidget >> mousePressEvent
Insertion options:
>> Insert definitions in implementation file >> OK
如下圖所示:
顯示鼠標位置
在窗口上添加控件用來顯示鼠標的當前位置。
打開 Forms >> mainwindow.ui (雙擊打開)
在Ui文件中放置一個label起名為labelmove用來顯示坐標的移動
修改 Label 控件的名字為 label_mouse_position
?顯示鼠標按下的位置
打開 Sources >> mainwindow.cpp
添加頭文件包含
>> #include <QMouseEvent>
>> MainWindow::mousePressEvent
在該函數(shù)內添加下面的代碼:
void MainWindow::mousePressEvent(QMouseEvent *event)
{ui->label_mouse_position->move(event->pos());//鼠標點擊哪里,label就在哪里顯示auto pos = event->pos();//獲得鼠標點擊的位置QString text = QString("mouse postion (%1, %2)").arg(pos.x()).arg(pos.y());//生成文本內容ui->label_mouse_position->setText(text);//設置label的內容,用于顯示ui->label_mouse_position->adjustSize();//根據(jù)內容調整label的大小,以顯示全部內容
}
運行效果演示
?
代碼下載
百度云
鏈接:https://pan.baidu.com/s/1XgN49hIvVhOLKuB3iLNaJQ
提取碼:1234
Gitee 碼云
https://gitee.com/carea/learn-qt-with-code/tree/master/QtMousePressEvent
更新記錄
2023-08-13 QString格式化使用更加安全規(guī)范的方式