欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

【Qt學(xué)習(xí)筆記】4.事件處理-創(chuàng)新互聯(lián)

首先解釋幾個(gè)名詞

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、金湖網(wǎng)站維護(hù)、網(wǎng)站推廣。

事件:

Qt中的事件,主要指用戶輸入事件,比如:點(diǎn)擊一個(gè)按鈕、選中復(fù)選框、按下回車等。

事件處理:

當(dāng)事件發(fā)生時(shí),程序做出的反應(yīng),比如:當(dāng)點(diǎn)擊顯示按鈕時(shí),程序彈出一個(gè)對(duì)話框,或產(chǎn)生其他相應(yīng)。

信號(hào)和槽:

Qt中的事件處理機(jī)制叫做信號(hào)和槽 (signal & slot)

其理論模型為:

對(duì)象 a 中有一個(gè)信號(hào)signal:XXX(代表一個(gè)事件)

對(duì)象 b 中有一個(gè)槽slot:YYY(事件處理函數(shù))

事先把它們連接起來(lái), connect(a, XXX, b, YYY);

然后,當(dāng) a 中事件發(fā)生時(shí),b中的處理函數(shù)就會(huì)被調(diào)用。

(每一種界面開發(fā)庫(kù)都有一個(gè)事件處理機(jī)制,并且,事件處理總是脫離C++語(yǔ)法之外)

一、實(shí)現(xiàn)事件處理的過(guò)程:

1、查文檔,找到相應(yīng)事件產(chǎn)生的函數(shù)原型(或者說(shuō)產(chǎn)生信號(hào)的函數(shù)signal)

2、聲明、定義一個(gè)信號(hào)處理函數(shù)(槽),參數(shù)形式應(yīng)該和signal的參數(shù)形式一致

3、將信號(hào)和槽用connect函數(shù)關(guān)聯(lián)

前兩步的示例如下:

//.h文件
private slots:
    int OnShowClicked(bool checked);
   
//.cpp文件
int XXX::OnShowClicked(bool checked)
{
    retunr 0;
}

接下來(lái)做一個(gè)練習(xí):

設(shè)計(jì)如下界面,并實(shí)現(xiàn)當(dāng)點(diǎn)擊按鈕后,觸發(fā)自己定義的事件,使下方的文本框顯示一行內(nèi)容

【Qt學(xué)習(xí)筆記】4.事件處理

實(shí)現(xiàn)代碼如下:

//.h
class Test4_1a_11_29 : public QMainWindow
{
    Q_OBJECT

public:
    Test4_1a_11_29(QWidget *parent = Q_NULLPTR);

private slots:
	int OnShowClicked(bool checked);

private:
    Ui::Test4_1a_11_29Class ui;
};


//.cpp
Test4_1a_11_29::Test4_1a_11_29(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	connect(ui.btnShow, SIGNAL(clicked(bool)), this, SLOT(OnShowClicked(bool)));
	//connect的參數(shù) : 對(duì)象QObject* A  ,   A的信號(hào)(SIGNAL), 對(duì)象QObject* B  , B的槽(SLOT)    A為產(chǎn)生信號(hào)的對(duì)象, B為處理信號(hào)的對(duì)象
}

int Test4_1a_11_29::OnShowClicked(bool checked)
{
	ui.QPlainTextEdit1->setPlainText("change world");
	return 0;
}

二、connect的注意要點(diǎn)

響應(yīng)函數(shù)(槽)要用slot關(guān)鍵字修飾

參數(shù)SIGNAL和SLOT函數(shù)都要大寫

clicked和SLOT函數(shù)中的參數(shù),注意只有類型

通過(guò)返回值判斷connect()函數(shù)執(zhí)行是否成功。

但我發(fā)現(xiàn),只能用false判斷,而不論connect() == true 還是 true == connect()的形式都是無(wú)法通過(guò)的,而如果非要用true,則需要對(duì)connect的返回值進(jìn)行一次強(qiáng)制轉(zhuǎn)換:

assert(true == (bool)connect(ui.btnShow, SIGNAL(clicked(bool)), this, SLOT(OnShowClicked(bool))));

【Qt學(xué)習(xí)筆記】4.事件處理

原因待探查

尾巴:

檢查connect的返回值,如果出錯(cuò),可以用qDebug()函數(shù)打印調(diào)試信息,但用這種方法打印的提示信息只有在調(diào)試狀態(tài)下可見。

既然這樣,用assert()是不是更方便呢?

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

標(biāo)題名稱:【Qt學(xué)習(xí)筆記】4.事件處理-創(chuàng)新互聯(lián)
鏈接地址:http://chinadenli.net/article34/ddiese.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站策劃、云服務(wù)器營(yíng)銷型網(wǎng)站建設(shè)、ChatGPT、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)