Qt:信号槽机制传递复杂类型参数(窗口通信)
来源:互联网 发布:可可网络验证后台 xss 编辑:程序博客网 时间:2024/06/05 21:18
通过Qt的带参信号可以很方便实现参数传递。但有一个问题,一般定义的信号都只有一到两个参数。如果你想传递很多参数时候会出现限制,当然你也可以让你定义的信号带多个参数,但那必然是很繁琐的事情且代码会显得很臃肿。解决这种复杂参数传递的一个思路就是实现一个容器来装载多个参数。在Qt中QMap就是一个很好用的容器来实现多参数传递,这是一个关联容器。通常定义其键值对类型为<QString,QVariant>. 用QString作为索引号可以方便我们寻找相对应的值,QVariant可以保存各种不同类型的数据对象。在Qt的QSetting类中数据保存的数据结构就是QMap<QString,QVariant>.这种数据结构可以一任意方式组织数据
一个例子如下:
QMap<QString,QVariant> pearMap;pearMap["Standard"]=1.95;pearMap["Organic"]=2.25;QMap<QString,QVariant> fruitMap;fruitMap["orange"]=2.10;fruitMap["apple"]=3.85;fruitMap["Pear"]=pearMap;这组织起一个很复杂的数据结构。但这种数据结构大量的使用了QVariant类,QVariant的变量是以降低可读性和效率为代价的。这是使用这种方法的一个缺陷。
另一个方法:在C/C++中我们可以定义一个结构体来将我们需要的数据类型组合起来。然后在已该结构体传作为参数传递。在Qt中使用结构体 要进行注册,具体的内容见下面的引用文献:
QT信号和槽以结构体为参数传递复杂数据
1 0
- Qt:信号槽机制传递复杂类型参数(窗口通信)
- Qt信号槽传递自定义类型参数
- qt线程通信(通过信号触发来传递参数)
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽以结构体为参数传递复杂数据
- QT信号和槽参数传递
- QT信号槽传递参数技巧
- QT信号槽传递参数技巧
- QT信号槽传递参数技巧
- Qt多线程间信号槽传递非QObject类型对象的参数
- 【Qt_5】Qt多线程间信号槽传递非QObject类型对象的参数
- C++实现多线程对象内存池带垃圾回收机制
- hdu5685Problem A+线性同余
- angular中的angular-ngSanitize模块-$sanitize服务
- 搜索二叉树的后续遍历序列
- java web1
- Qt:信号槽机制传递复杂类型参数(窗口通信)
- 意念力言语--意念力应用篇之二
- hdu oj 1201:18岁生日 解题报告
- Linux截屏工具——scrot
- java 实现接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- 学习BroadcastReceiver
- hdoj-2161-Primes
- 程序猿的转型
- python property函数