标签:SLOT QT SIGNAL VS UI 信号 Test
**************************************************************
关于如果安装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
(晕,创建出来的程序竟然是空的,不知道是什么劳什子原因,重新创建了一次。)
(创建完毕后,记得编译运行的一下)
第二步:下面开始编辑 UI
(此处必须说明一下,打开UI进入QT 设计师,这个过程大部分人都会遇到问题,就是打开错误,对于这个问题 ,网上很多人说明了如何搞,基本就是手打选择打开的程序。)
***
在QT设计里面,给UI添加一个pushbutton 和 一个textBrowser
**
(至于这两个控件的objectname,我用的默认)
***
***
编译
**
然后还是还有一个步骤, 一个很麻烦的步骤。 我们上述在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
**(这个地方有些歧义,有点人点击UI 编译后,是可以看到在UI的头文件里面看到控件的,如下图)
第三步:在Test_SIGNAL_SLOT_project_name.h 里面添加代码
//第一步:头文件中添加槽的声明
private slots:
int ShowTextXdd(bool checked);//自定义一个槽,说白了就是一个消息(事件)的响应函数。这个名字所随意,但是参数不能改
第四步:在CPP文件里面添加 函数的定义
// 第二步:定义槽函数.这个函数的声明是在头文件里面做的
int Test_SIGNAL_SLOT_project_name::ShowTextXdd(bool checked)
{
ui.textBrowser->setText("Hello world");
return 0;
}
第五步:QT独有的,添加链接。 注意是在构造函数里面添加链接
是类:Test_SIGNAL_SLOT_project_name 的构造函数。
connect
(
ui.pushButton,//对象1
SIGNAL(clicked(bool)),//对象1信号,固定的函数和参数
this,//对象2
SLOT(ShowTextXdd(bool))//对象2的槽函数,自定义的函数
);
第六步:生成, 然后运行,效果如下
*********
后记
1)VS和QT在一起确实有很多麻烦的地方, 好在用的人多 大部分都可以克服
标签:SLOT,QT,SIGNAL,VS,UI,信号,Test 来源: https://blog.csdn.net/wenluderen/article/details/120500854
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。