Qt的槽函数的public,protected,private以及Qt4、5中的connect函数。
来源:互联网 发布:mac的远程桌面连接 编辑:程序博客网 时间:2024/06/06 02:34
捋一捋,在Qt4、5中,信号与槽的一些细节。
先从Qt4、5中,用于连接信号和槽的connect函数开始讲起。
在Qt4中,connect函数的原型有以下3种:
bool connect(const QObject *, const char *,
const QObject *, const char *,
Qt::ConnectionType);
bool connect(const QObject *, const QMetaMethod &,
const QObject *, const QMetaMethod &,
Qt::ConnectionType);
bool connect(const QObject *, const char *,
const char *,
Qt::ConnectionType) const;
在Qt5中,connect函数的原型有以下5种:
QMetaObject::Connection connect(const QObject *, const char *,
const QObject *, const char *,
Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, const QMetaMethod &,
const QObject *, const QMetaMethod &,
Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, const char *,
const char *,
Qt::ConnectionType) const;
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,
const QObject *, PointerToMemberFunction,
Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,
Functor);
在Qt4和Qt5的connect函数原型中,我们发现Qt5比Qt4多处了2种原型:
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,
const QObject *, PointerToMemberFunction,
Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,
Functor);
注意:这两种原型在Qt5中是可以传入信号和槽的“函数指针”的,通俗一点就是可以直接将“函数名”作为参数传进去,正是因为这一点,在写“槽”的时候就需要注意到public、protected和private的问题。在以前的Qt4中,“信号和槽”是通过SIGNAL()和SLOT()的方式来连接的,现在可以使用“函数名”的方式来连接,就需要考虑到“函数名”是否有效,在将“槽”声明为protected和private的时候,在类外是不能直接通过对象来访问到该函数的,即:在类外使用connect并传入“函数名”时,将会编译不通过,此时需要将protected、private更改为public即可。
阅读全文
1 0
- Qt的槽函数的public,protected,private以及Qt4、5中的connect函数。
- friend成员函数不受public/protected/private的限制
- public,private,protected,以及不写时的区别
- public,private,protected,以及不写时的区别
- java中的public private protected的含义
- private,protected,public,internal以及protected internal的区别
- 构造函数,析构函数与public,protected,private的恩怨纠葛
- private,protected,public的区别
- public,private,protected的区别
- public,private,protected的区别
- protected,public,private 的区别
- public,private,protected的使用
- C++的public,private,protected
- public private protected 的区别
- public,private,protected的区别
- public、private、protected的区别
- public、private以及protected
- public、private、protected的作用域,以及不写时的区别?
- ios关于故事版的tabbar自定义
- 搭建一个完整的Java开发环境
- Xmind基础教程-添加附件
- 发布到tomcat服务器上webapps里的文件名和项目名称不一样
- 思维导图之Python学习
- Qt的槽函数的public,protected,private以及Qt4、5中的connect函数。
- 「网络流 24 题」孤岛营救问题
- 12个Material Design风格控件的使用
- NOIP2009 最优贸易
- 【Android笔记-5】ListView adapter.notifyDataSetChanged
- 求一数组前k大的所有数
- 创建spring配置文件时,xsd namespace不提示解决方案
- NP问题
- 大数据生态系统基础:Hadoop(二):Hadoop 3.0.0集群安装和验证