connect函数的探究
来源:互联网 发布:7.62*63步枪子弹数据 编辑:程序博客网 时间:2024/06/05 12:41
首先是对于头文件三个定义的理解
#ifndef 。。。//如果没有定义。。。
#define 。。。//定义。。。
#endif //结束如果
这个用法主要是在头文件中,主要是为了防止类重复的include,所以在类的头文件之前加上前面两个,用类名替代。。。,在最后加上最后一句#endif。
其次对于类的作用域的理解
类可以被看成是一组有名成员的集合,类X的成员m具有类作用域,对m的访问方式有如下3种。
(1)如果在X的成员函数中没有声明同名的局部作用域标识符,那么在该函数内可以直接访问成员m。也就是说m在这样的函数中都起作用。
(2)通过表达式X.m或者X::m。这正是程序中访问对象成员的最基本方法。X::m的方式用于访问类的静态成员。
(3)通过ptr->m这样的表达式,其中ptr为指向X类的一个对象的指针。
然后是namespace命名空间作用域的理解
命名空间作用域是为了防止不同模块中的类和函数之间发生重名而引发错误而出现的!命名空间起到的就是消除歧义的作用!
命名空间的语法形式如下:
namespace 命名空间名{
命名空间内的各种声明(函数声明、类声明、。。。)
}
一个命名空间确定了一个命名空间作用域,凡是在该命名空间之内声明的、不属于前面所述各个作用域的标识符,都属于该命名空间作用域。
在命名空间内部可以直接引用当前命名空间中声明的标识符,如果需要引用其他命名空间的标识符,需要使用下面的语法:
命名空间名::标识符名
例如:
namespace SomeNs{
class SomeClass{...};
}
如果需要引用类名SomeClass或函数名someFunc,需要使用下面的方式:
SomeNs::SomeClass obj1;//声明一个SomeNs::SomeClass型的对象obj1
例如connect中:
namespace Ui {
class FatherDialog;
}
在私有成员中调用:
private:
Ui::FatherDialog *ui;
对于slots(槽)的理解:
public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确的传递。
protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。
private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。
本例中是:
private slots:void on_pushButton_clicked();void showChildDialog();也就是声明了两个槽:
对于explicit的理解:
关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。
对于QMessageBox的理解:
在Qt中经常需要弹出窗口,QMessageBox可以实现此功能,一共有三种窗口,information, question, 和 warning,critical, about分别对应感叹号,问号和叉号等等,使用方法很简单,一共有三个参数,第一个是父窗口句柄,剩下两个分别为窗口名称和显示内容,显示内容为QString类型。
现在开始分析主程序:
#include "fatherdialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
FatherDialog w;
w.show();
return a.exec();
}
首先调用fatherdialog.h这个文件
程序第二行声明FatherDialog的一个对象w;
第3行就是将w展示出来
fatherdialog.h里主要是声明了命名空间Ui里的类FatherDialog,然后是声明了两个槽on_pushButton_clicked(),showChildDialog(),
以及其构造函数FatherDialog(QWidget*parent= 0);
定义了Ui::FatherDialog的指针对象ui
ui的内容主要是 QObject::connect(ui->childB,&QPushButton::clicked,this&FatherDialog::showChildDialog);
这里需要理解下connect:connect,是QT中的连接函数,将信号发送者sender对象中的信号signal与接受者receiver中的member槽函数联系起来。
然后就是一个析构函数删除对象ui;
接着是两个槽的作用:
on_pushButton_clicked()的作用弹出一个框:标题:提示 内容:请告诉我为什么 按钮:OK
showChildDialog()的作用,声明一个指针对象d,并且将其展示出来;
以上就是我对connect以及相关代码的一点粗略的理解.
- connect函数的探究
- 深入探究connect函数
- 深入探究connect函数
- 探究connect函数
- 深入探究connect函数
- 深入探究connect函数
- 深入探究connect函数
- 深入探究connect函数
- 深入探究connect函数
- 深入探究connect函数
- 深入探究connect函数
- qt中connect函数探究
- windows实验4-深入探究connect函数
- 深入探究Connect函数(知识点整合)
- 微型技术博客-探究connect()函数。
- 微型技术博客004-深入探究connect函数
- connect函数的用法
- connect函数的用法
- [P1026]统计单词个数
- Leetcode 114 Flatten Binary Tree to Linked List
- 第十四章:表单脚本(文本框脚本)
- JavaScript模仿微博发布效果
- Leetcode 21(Java)
- connect函数的探究
- Java8 Stream API HDU简单题集锦
- Android Studio生成成员变量时自动加上m前缀
- AI的博客资料等
- Jetty实战之 嵌入式Jetty运行Servlet
- python之多进程和进程池(multiprocessing库)
- 镜像与代理、证书与授权
- CSS居中
- linux使用cp复制文件到多个目录