在VS里面使用QT,实现:信号与槽

本文参考: 基于VS的Qt信号与槽介绍_哔哩哔哩_bilibili文字版:https://www.cnblogs.com/xdd1997/p/14574796.html在VS里面使用QT,实现:信号与槽https://www.bilibili.com/video/BV1Q5411P7Km?from=search&seid=15465046926530924829&spm_id_from=333.337.0.0

**************************************************************

关于如果安装VS和QT,不在本文阐述,本文环境是:WIN10-64专业版,VS2019,QT5.15.2

**************************************************************

正文:

之前学习QT的时候,用的IDE是一直是Qt-creator,不过我之前学习C#和C++ 和VB.net用的IDE是VS。VS更熟一点。关于改选择哪个IDE,目前消息面复杂,主要有一下论述:

甲:VS 调试功能强大

乙:VS使用难度高

丙:Qt-creator简单,整合方便。

丁:某业界老鸟语录--->开始的时候大家还是用VS,不过最近越来越多的人用Qt-creator

***

由于我之前用VS较为熟悉,而且我还得继续搞C#和VB.net.所以打算继续使用VS.

在Qt-creator 里面可以很快捷的创建信号和槽。但是在VS里面非常的复杂,不过可以实现。

下面阐述完整步骤

第一步:使用VS2019在英文目录下创建一个QT widgets application。我这边选目录如下:

E:\OneDrive\Text programming\QT\Demo_SIGNAL_SLOT

在VS里面使用QT,实现:信号与槽

在VS里面使用QT,实现:信号与槽

在VS里面使用QT,实现:信号与槽 

在VS里面使用QT,实现:信号与槽

在VS里面使用QT,实现:信号与槽

(晕,创建出来的程序竟然是空的,不知道是什么劳什子原因,重新创建了一次。)

 在VS里面使用QT,实现:信号与槽

(创建完毕后,记得编译运行的一下)

在VS里面使用QT,实现:信号与槽

 

第二步:下面开始编辑 UI

在VS里面使用QT,实现:信号与槽

(此处必须说明一下,打开UI进入QT 设计师,这个过程大部分人都会遇到问题,就是打开错误,对于这个问题 ,网上很多人说明了如何搞,基本就是手打选择打开的程序。)

***

在QT设计里面,给UI添加一个pushbutton  和 一个textBrowser

**

(至于这两个控件的objectname,我用的默认)

***

在VS里面使用QT,实现:信号与槽

***

编译

在VS里面使用QT,实现:信号与槽

 **

然后还是还有一个步骤, 一个很麻烦的步骤。 我们上述在UI里面添加了两个控件,但是因为QT和VS之间有些隔阂,UI的头文件里面竟然没有这两个控件。

(E:\OneDrive\Text programming\QT\Demo_SIGNAL_SLOT\Test_SIGNAL_SLOT_fangan\Test_SIGNAL_SLOT_project_name\Debug\uic)

ui_Test_SIGNAL_SLOT_project_name.h

在VS里面使用QT,实现:信号与槽

**(这个地方有些歧义,有点人点击UI 编译后,是可以看到在UI的头文件里面看到控件的,如下图)

在VS里面使用QT,实现:信号与槽

 

 

第三步:在Test_SIGNAL_SLOT_project_name.h  里面添加代码

在VS里面使用QT,实现:信号与槽

    //第一步:头文件中添加槽的声明
private slots:
    int ShowTextXdd(bool checked);//自定义一个槽,说白了就是一个消息(事件)的响应函数。这个名字所随意,但是参数不能改

 

第四步:在CPP文件里面添加 函数的定义

在VS里面使用QT,实现:信号与槽

// 第二步:定义槽函数.这个函数的声明是在头文件里面做的
int Test_SIGNAL_SLOT_project_name::ShowTextXdd(bool checked)
{
    ui.textBrowser->setText("Hello world");
    return 0;

}

 

第五步:QT独有的,添加链接。 注意是在构造函数里面添加链接

是类:Test_SIGNAL_SLOT_project_name 的构造函数。

在VS里面使用QT,实现:信号与槽

  connect
    (
        ui.pushButton,//对象1
        SIGNAL(clicked(bool)),//对象1信号,固定的函数和参数
        this,//对象2
        SLOT(ShowTextXdd(bool))//对象2的槽函数,自定义的函数
    );

 

第六步:生成, 然后运行,效果如下

在VS里面使用QT,实现:信号与槽

*********

后记

1)VS和QT在一起确实有很多麻烦的地方, 好在用的人多 大部分都可以克服

2)源代码地址:https://download.csdn.net/download/wenluderen/25151184在VS里面使用QT,实现:信号与槽https://download.csdn.net/download/wenluderen/25151184

 

 

 

 

 

上一篇:【数字信号】基于GUI可编程电音合成器【Matlab 872期】


下一篇:FPGA学习笔记