当前位置:网站首页>QT signals 保存到 QMap
QT signals 保存到 QMap
2022-08-04 05:34:00 【_杜竞宁_】
一般适用较多且统一的不同信号,粗略代码(不能直接运行)如下:
class Person{
public:
Person(){
m_signalMap = {
// 3.初始化时添加到map
{
"eat", &buttonForPerson::eat},
{
"drink", &buttonForPerson::drink},
...
};
}
slots:
void actions(){
any *act = (any)(sender());
if (act)
emit (this->*m_signalMap[act->actionName])();
/* 4.调用,发出信号,可以先判断值是否为空; 我这里不判断,为空代表有某些存在的动作没有被赋值或动作本身就不应该存在,表明代码有问题 */
}
signals:
void eat();
void drink();
...
private:
using p_signal_type = void(Person::*)(); // 1.声明函数指针类型
QMap<QString, p_signal_type> m_signalMap; // 2.声明Map;直接void(Person::*)(),可读性差
};
边栏推荐
猜你喜欢

华硕飞行堡垒系列无线网经常显示“无法连接网络” || 一打开游戏就断网

vim的介绍

【HIT-SC-MEMO2】哈工大2022软件构造 复习笔记2

clssloader与双亲委派

【HIT-SC-LAB1】哈工大2022软件构造 实验1

IDEA中创建web项目实现步骤

【HIT-SC-MEMO7】哈工大2022软件构造 复习笔记7

网络安全行业是蓝景吗?

RuntimeError: You called this URL via POST, but the URL doesn‘t end in a slash and you have APPEND_S

基于Webrtc和Janus的多人视频会议系统开发4 - 改造信令交互系统完成sdp交换过程
随机推荐
Uos统信系统 chrony配置
Uos统信系统 CA根证书搭建
如何在网页标题栏中加入图片!
2020-03-27
PS像素画学习-1
MySQL stored procedure study notes (based on 8.0)
数据库sql的基础语句
树莓派 4 B 拨动开关控制风扇 Rasberry Pi 4 B Add Toggle Switch for the Fan
gRPC intro 1:RPC
分布式cache项目
ZYNQ之FPGA LED 灯闪烁实验
【HIT-SC-MEMO6】哈工大2022软件构造 复习笔记6
CMDB 腾讯云部分实现
【HIT-SC-MEMO2】哈工大2022软件构造 复习笔记2
SSO单点登陆
【HIT-SC-LAB2】哈工大2022软件构造 实验2
实现高并发服务器(二)
POI及EasyExcel
EL expression
跑跑飞弹室外跑步AR游戏代码方案设计