qt信号和槽问题(变量只在槽函数中改变问题)
来源:互联网 发布:微信怎么支付淘宝 编辑:程序博客网 时间:2024/06/14 05:19
在链接一个类A和另一个类B一个对象的时候,
如果在A类对象中定义对象B,只使用B x方式定义,需要在connect第三个槽参数中使用引用,大部分情况是在A中new一个B的对象,便可以直接使用connect.
A *x[24]=A *(x[24]);
然而在实际运用中,发生了这样神奇的情况:
如果此时直接定义B x[24],在第三个槽参数直接写x,按理说默认把信号发送到x[0]上,可是这时如果开启x[i](i<24&&i>0),在其它的数组x元素中,在任意的x[i]窗口里,依然可以接收到A类发送的信号,B中的私有公有变量在当前槽函数中甚至可以改变(已用debug函数测试,在其中确实改变),但是在B类其它的函数中却依旧是默认的情况,这种情况不知是否QT框架中出现的bug,x[i]的槽函数理应无法接收信号的参数.
具体示例如下:
1.Dialog dlg[24];
2.槽信号对接
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(this,SIGNAL(send(QString)),dlg,SLOT(getId(QString)));
}
3.在类A(mainwindow)中点击按钮发送信号
void MainWindow::on_pushButton_clicked()
{
emit send("fuck");
dlg[2].show();
}
4.类B(dialog)中接收信号//理应无法接受
void Dialog::getId(QString id)
{
roomId=id;
qDebug()<<"槽函数获得id"<<roomId;
}
5.在类B中其它按钮或函数触发此Id,为默认空字符串
void Dialog::on_pushButton_clicked()
{
qDebug()<<"Dialog其它地方id"<<roomId;
}
//debug输出结果
Starting E:\QT APP\build-TestOfCrash-Desktop_Qt_5_6_1_MinGW_32bit-Debug\debug\TestOfCrash.exe...
槽函数获得id "fuck"
其它地方id ""
其它地方id ""
其它地方id ""
如果在A类对象中定义对象B,只使用B x方式定义,需要在connect第三个槽参数中使用引用,大部分情况是在A中new一个B的对象,便可以直接使用connect.
A *x[24]=A *(x[24]);
然而在实际运用中,发生了这样神奇的情况:
如果此时直接定义B x[24],在第三个槽参数直接写x,按理说默认把信号发送到x[0]上,可是这时如果开启x[i](i<24&&i>0),在其它的数组x元素中,在任意的x[i]窗口里,依然可以接收到A类发送的信号,B中的私有公有变量在当前槽函数中甚至可以改变(已用debug函数测试,在其中确实改变),但是在B类其它的函数中却依旧是默认的情况,这种情况不知是否QT框架中出现的bug,x[i]的槽函数理应无法接收信号的参数.
具体示例如下:
1.Dialog dlg[24];
2.槽信号对接
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(this,SIGNAL(send(QString)),dlg,SLOT(getId(QString)));
}
3.在类A(mainwindow)中点击按钮发送信号
void MainWindow::on_pushButton_clicked()
{
emit send("fuck");
dlg[2].show();
}
4.类B(dialog)中接收信号//理应无法接受
void Dialog::getId(QString id)
{
roomId=id;
qDebug()<<"槽函数获得id"<<roomId;
}
5.在类B中其它按钮或函数触发此Id,为默认空字符串
void Dialog::on_pushButton_clicked()
{
qDebug()<<"Dialog其它地方id"<<roomId;
}
//debug输出结果
Starting E:\QT APP\build-TestOfCrash-Desktop_Qt_5_6_1_MinGW_32bit-Debug\debug\TestOfCrash.exe...
槽函数获得id "fuck"
其它地方id ""
其它地方id ""
其它地方id ""
阅读全文
0 0
- qt信号和槽问题(变量只在槽函数中改变问题)
- Qt信号和槽问题
- Qt中信号和槽的问题解析
- QT信号槽问题
- Qt:信号与槽的连接函数问题
- Qt中信号与槽注意的问题
- qt编程信号和槽连接应注意的问题
- QT自定义Action的信号和槽连接问题
- 在QT的信号和槽中使用自定义类型
- 在VS2013中添加QT的信号和槽功能
- Qt信号与槽补充 - 在基类函数中发射的信号
- 分享一点在用Qt编写计算器的过程中所遇到的问题(主要是信号和槽的问题)大神们就没必要看了,都是一些小白摸爬打滚的经验
- QT 中QDateEdit 的时间改变事件---信号与槽
- QT 信号槽 参数数目问题
- Qt信号与槽关联的问题
- QT信号槽的压力问题
- qt信号槽(多个类的通信问题)
- QT中Connect函数 信号槽
- js中RGB与十六进制颜色转换
- MySQL5.7版本下载、安装、配置
- 加密解密算法总结分析
- 【性能测试】-loadrunner脚本录制及调试(二)
- PHP中动态HTML的输出技术
- qt信号和槽问题(变量只在槽函数中改变问题)
- 《软技能—代码之外的生存指南》读书笔记之二:自我营销
- jsoup分析a标签绝对路径
- kubernetes 服务发现与注册个人想法
- Spring中任务调度cronExpression配置说明
- 第十五章 另外一面
- Linux Command Line and....ch10(编辑器)
- tensorflow构建RNN识别mnist手写数字
- LSMW批处理使用方法(02)_步骤1