欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:Qt信號(hào)與槽(四種寫法)

柚子快報(bào)激活碼778899分享:Qt信號(hào)與槽(四種寫法)

http://yzkb.51969.com/

學(xué)習(xí)記錄:分析Qt信號(hào)與槽的四種不同寫法

目錄

一、UI直接綁定

二、用宏的形式綁定

三、用指針的形式綁定

四、Lambda表達(dá)式綁定

五、源代碼

一、UI直接綁定

簡單繪制一個(gè)UI,通過UI直接綁定給打開按鈕綁定信號(hào)與槽,右鍵打開按鈕,點(diǎn)擊轉(zhuǎn)到槽

這個(gè)列表是按鈕可以發(fā)出的信號(hào),點(diǎn)擊clicked()信號(hào)

系統(tǒng)自動(dòng)在.cpp文件生成槽函數(shù),并且在.h中也自動(dòng)生成了函數(shù)聲明

在槽函數(shù)中執(zhí)行響應(yīng)的操作,我這里是實(shí)現(xiàn)類似Windows下的cmd窗口跳轉(zhuǎn)功能

#include "widget.h"

#include "ui_widget.h"

#include

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

}

Widget::~Widget()

{

delete ui;

}

void Widget::on_commitButton_clicked()

{

// 獲取lineedit數(shù)據(jù)

QString program = ui->cmdLineEdit->text();

// 創(chuàng)建Process對(duì)象

QProcess *myProcess = new QProcess(this);

myProcess->start(program);

}

二、用宏的形式綁定

信號(hào)發(fā)出者(文本框?qū)ο螅簎i->cmdLineEdit

信號(hào):returnPressed()

信號(hào)接收者(this在這里代表widget對(duì)象):this

槽函數(shù):on_commitButton_clicked()

// 2.用宏的形式綁定

// 信號(hào):文本輸入框的內(nèi)容輸入完成,點(diǎn)擊回車鍵觸發(fā)

// 槽函數(shù):模擬cmd命令行(與點(diǎn)擊打開按鈕槽函數(shù)相同)

connect(ui->cmdLineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));

三、用指針的形式綁定

信號(hào)發(fā)出者(按鈕對(duì)象):ui->cancelButton

信號(hào):clicked

信號(hào)接收者(this在這里代表widget對(duì)象):this

槽函數(shù):on_cancelButton_clicked()

// 3.用指針的形式綁定

// 信號(hào):點(diǎn)擊取消按鈕

// 槽函數(shù):關(guān)閉窗口

connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);

四、Lambda表達(dá)式綁定

信號(hào)發(fā)出者(按鈕對(duì)象):ui->browseButton

信號(hào):clicked

信號(hào)接收者(this在這里代表widget對(duì)象):this

槽函數(shù):Lambda表達(dá)式

// 4.Lambda表達(dá)式綁定

// 信號(hào):點(diǎn)擊瀏覽按鈕

// 槽函數(shù):出現(xiàn)一個(gè)彈窗

connect(ui->browseButton, &QPushButton::clicked, [this]()

{

QMessageBox::information(this,"信息","點(diǎn)擊瀏覽");

});

五、源代碼

main.cpp

#include "widget.h"

#include

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

Widget w;

w.show();

return a.exec();

}

widget.h

#ifndef WIDGET_H

#define WIDGET_H

#include

QT_BEGIN_NAMESPACE

namespace Ui { class Widget; }

QT_END_NAMESPACE

class Widget : public QWidget

{

Q_OBJECT

public:

Widget(QWidget *parent = nullptr);

~Widget();

private slots:

void on_commitButton_clicked();

void on_cancelButton_clicked();

private:

Ui::Widget *ui;

};

#endif // WIDGET_H

widget.cpp

#include "widget.h"

#include "ui_widget.h"

#include

#include

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

// 2.用宏的形式綁定

// 信號(hào):文本輸入框的內(nèi)容輸入完成,點(diǎn)擊回車鍵觸發(fā)

// 槽函數(shù):模擬cmd命令行(與點(diǎn)擊打開按鈕槽函數(shù)相同)

connect(ui->cmdLineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));

// 3.用指針的形式綁定

// 信號(hào):點(diǎn)擊取消按鈕

// 槽函數(shù):關(guān)閉窗口

connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);

// 4.Lambda表達(dá)式綁定

// 信號(hào):點(diǎn)擊瀏覽按鈕

// 槽函數(shù):出現(xiàn)一個(gè)彈窗

connect(ui->browseButton, &QPushButton::clicked, [this]()

{

QMessageBox::information(this,"信息","點(diǎn)擊瀏覽");

});

}

Widget::~Widget()

{

delete ui;

}

void Widget::on_commitButton_clicked()

{

// 獲取lineedit數(shù)據(jù)

QString program = ui->cmdLineEdit->text();

// 創(chuàng)建Process對(duì)象

QProcess *myProcess = new QProcess(this);

myProcess->start(program);

}

void Widget::on_cancelButton_clicked()

{

this->close();

}

UI文件,注意控件名稱要對(duì)應(yīng)

柚子快報(bào)激活碼778899分享:Qt信號(hào)與槽(四種寫法)

http://yzkb.51969.com/

文章來源

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19595080.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄