C++/Qt工作笔记-static_cast在connect函数中的运用
发布日期:2021-06-30 10:56:36 浏览次数:2 分类:技术文章

本文共 2251 字,大约阅读时间需要 7 分钟。

connect使用函数指针,带参数的时候优先考虑使用static_cast

栗子一:

运行截图如下:

源码如下:

widget.h

#ifndef WIDGET_H#define WIDGET_H#include 
#include
namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); ~Widget();private slots: void on_pushButton_clicked(); void getProcessStatus(int exitCode,QProcess::ExitStatus exitStatus);private: Ui::Widget *ui;};#endif // WIDGET_H

main.cpp

#include "widget.h"#include 
int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}

widget.cpp

#include "widget.h"#include "ui_widget.h"#include 
#include
#include
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this);}Widget::~Widget(){ delete ui;}void Widget::on_pushButton_clicked(){ QProcess p; QString cmdString="E:\\vs2012\\QtTestDemo\\Debug\\QtTestDemo.exe"; p.start("cmd",QStringList()<<"/c"<
(&QProcess::finished),this,&Widget::getProcessStatus); connect(&p,static_cast
(&QProcess::finished),[=](int exitCode,QProcess::ExitStatus exitStatus){ qDebug()<<"exitCode:"<

 

栗子二

运行截图如下:

源码如下:

qtconnectdemo.h

#ifndef QTCONNECTDEMO_H#define QTCONNECTDEMO_H#include 
#include "ui_qtconnectdemo.h"class QtConnectDemo : public QWidget{ Q_OBJECTpublic: QtConnectDemo(QWidget *parent = 0); ~QtConnectDemo();public slots: //void btnClicked(); void btnClicked(bool checked);private: Ui::QtConnectDemoClass ui;};#endif // QTCONNECTDEMO_H

mian.cpp

#include "qtconnectdemo.h"#include 
int main(int argc, char *argv[]){ QApplication a(argc, argv); QtConnectDemo w; w.show(); return a.exec();}

qtconnectdemo.cpp

#include "qtconnectdemo.h"#include "ui_qtconnectdemo.h"#include 
QtConnectDemo::QtConnectDemo(QWidget *parent) : QWidget(parent){ ui.setupUi(this); //connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(btnClicked())); //connect(ui.pushButton,&QPushButton::clicked,this,&QtConnectDemo::btnClicked); //connect(ui.pushButton,&QPushButton::clicked,this,&QtConnectDemo::btnClicked); connect(ui.pushButton,static_cast
(&QPushButton::clicked),[=](bool status){ qDebug()<

 

转载地址:https://it1995.blog.csdn.net/article/details/82752685 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Qt文档阅读笔记-编写应用脚本解析与实例
下一篇:Qt文档阅读笔记-Qt工作笔记QProcess::finished的解析与实例

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月06日 17时37分03秒