精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網(wǎng)站建設(shè)資訊

NEWS

網(wǎng)站建設(shè)資訊

Qt--Qt中的事件處理

一.Qt事件處理

A.圖形界面應(yīng)用程序的消息處理模型
Qt--Qt中的事件處理
B.Qt平臺將系統(tǒng)產(chǎn)生的消息轉(zhuǎn)換為Qt事件
1.Qt事件是一個QEvent的對象
2.Qt事件用于描述程序內(nèi)部或外部發(fā)生的動作
3.任意的QObject對象都具備事件處理的能力
Qt--Qt中的事件處理
C.GUI應(yīng)用程序的事件處理方式
1.Qt事件產(chǎn)生后立即被分到QWidget對象
2.QWidget中的event(QEvent)進行事件處理
3.event()根據(jù)事件類型調(diào)用不同的事件處理函數(shù)
4.在事件處理函數(shù)中發(fā)送Qt預(yù)定義的信號
5.調(diào)用信號關(guān)聯(lián)的槽函數(shù)
場景分析
Qt--Qt中的事件處理
QPushButton事件處理分析
1.接收到鼠標事件
2.調(diào)用event(QEvent
)成員函數(shù)
3.調(diào)用mouseReleaseEvent(QMouseEvent*)成員函數(shù)
4.調(diào)用click()成員函數(shù)
5.觸發(fā)SIGNAL(clicked())
代碼示例--自定義事件

十載的安多網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整安多建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“安多網(wǎng)站設(shè)計”,“安多網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

QMyPushButton.cpp
#include "QMyPushButton.h"
#include 

QMyPushButton::QMyPushButton(QWidget* parent, QButtonListener* listener) : QPushButton(parent)
{
    m_listener = listener;
}

void QMyPushButton::mouseReleaseEvent(QMouseEvent *e)
{
    if( m_listener != NULL )
    {
        m_listener(this, e);

        e->accept();

        setDown(false);
    }
    else
    {
        QPushButton::mouseReleaseEvent(e);
    }
}

QMyPushButton.h
#ifndef QMYPUSHBUTTON_H
#define QMYPUSHBUTTON_H

#include 

typedef void (QButtonListener)(QObject*, QMouseEvent*);

class QMyPushButton : public QPushButton
{
    Q_OBJECT
protected:
    QButtonListener* m_listener;

    void mouseReleaseEvent(QMouseEvent *e);
public:
    explicit QMyPushButton(QWidget* parent = 0, QButtonListener* listener = 0);

signals:

public slots:

};
#endif // QMYPUSHBUTTON_H

Widget.cpp
#ifndef QMYPUSHBUTTON_H
#define QMYPUSHBUTTON_H

#include 

typedef void (QButtonListener)(QObject*, QMouseEvent*);

class QMyPushButton : public QPushButton
{
    Q_OBJECT
protected:
    QButtonListener* m_listener;

    void mouseReleaseEvent(QMouseEvent *e);
public:
    explicit QMyPushButton(QWidget* parent = 0, QButtonListener* listener = 0);

signals:

public slots:

};
#endif // QMYPUSHBUTTON_H

Widget.h
#ifndef QMYPUSHBUTTON_H
#define QMYPUSHBUTTON_H

#include 

typedef void (QButtonListener)(QObject*, QMouseEvent*);

class QMyPushButton : public QPushButton
{
    Q_OBJECT
protected:
    QButtonListener* m_listener;

    void mouseReleaseEvent(QMouseEvent *e);
public:
    explicit QMyPushButton(QWidget* parent = 0, QButtonListener* listener = 0);

signals:

public slots:

};
#endif // QMYPUSHBUTTON_H

運行的結(jié)果以及按鈕釋放時的打印結(jié)果如圖所示
Qt--Qt中的事件處理
D.事件和信號不同
1.事件由具體對象進行處理
2.信號由具體對象主動產(chǎn)生
3.改寫事件處理函數(shù)可能導(dǎo)致程序行為發(fā)生改變
4.信號是否存在對應(yīng)的槽函數(shù)不會改變程序行為
5.一般而言,信號在具體的事件處理函數(shù)中產(chǎn)生
E.事件的傳遞過程
Qt--Qt中的事件處理
QEvent中的關(guān)鍵成員函數(shù)
1.void ignore()--接收者忽略當前事件,事件可能傳遞給父組件
2.void accept()--接收者期望處理當前事件
3.bool isAccepted()--判斷當前事件是否被處理
代碼生成的結(jié)果運行如圖所示
Qt--Qt中的事件處理
F.Qt中的事件過濾
1.事件過濾器可以對其他組件接收到的事件進行監(jiān)控
2.任意的QObject對象都可以作為事件過濾器使用
3.事件過濾器對象需要重寫eventFilter()函數(shù)
組件通過installEventFilter()函數(shù)安裝事件過濾器
1.事件過濾器在組件之前接收到事件
2.事件過濾器能夠決定是否將事件轉(zhuǎn)發(fā)到組件對象
Qt--Qt中的事件處理
基本的代碼實現(xiàn)
Qt--Qt中的事件處理
小結(jié)
1.Qt事件和信號不同
2.事件由QObject的對象進行處理
3.信號由QObject對象觸發(fā)
4.重寫事件處理函數(shù)可能該變程序行為
5.信號的觸發(fā)不會對程序行為造成影響
6.事件處理實在實際工程開發(fā)中的應(yīng)用非常普遍


網(wǎng)頁標題:Qt--Qt中的事件處理
文章源于:http://m.jcarcd.cn/article/ghiphe.html
主站蜘蛛池模板: 国产免费爽爽视频 | 91综合| 日本乱理伦片 | 精品美女区 | 国产九一在线视频 | 国精品无 | 成人亚洲在线观看 | 国产剧情传媒大片 | 精品日韩国产国产 | 日韩在线观看午夜伊 | 99亚洲| 欧美日韩午夜大片 | 精品日本一区 | 欧美日韩在线观 | 欧洲成人精品 | 日本韩国三级 | 欧美另类激情 | 精品在线观看一区 | 午夜天天福利小视频 | 91网在线观看 | 国产福利免费 | 日韩成人一区三区 | 理论片午夜 | 国产中文字幕欧美 | 日本高清com | 国产欧美成 | 国产末成年女噜噜 | 韩国电影| 国产卡一卡二卡三卡 | 99在线在线 | 国产最新电影在线观 | 国产性爱在线播放 | 午夜射精日韩 | 97精品视频在线 | 国产韩日欧美在线 | 国产精成人品 | 午夜电影院| 国产日韩欧美精 | 日本一a不卡| 日本中文字幕爱丝袜 | 欧洲亚洲视频 |