社区
Qt
帖子详情
变量只在槽函数中改变问题
liu4791
2019-08-08 09:36:48
我用信号与槽传递变量,结果发现在槽函数中qDebug后变量存在,但是在其他方法中使用变量时一直是0.
...全文
371
6
打赏
收藏
变量只在槽函数中改变问题
我用信号与槽传递变量,结果发现在槽函数中qDebug后变量存在,但是在其他方法中使用变量时一直是0.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
诺水城子
2019-08-08
打赏
举报
回复
应该是值传递没处理正确
诺水城子
2019-08-08
打赏
举报
回复
代码提出来,可以帮你分析
诺水城子
2019-08-08
打赏
举报
回复
引用 3 楼 liu4791 的回复:
[quote=引用 2 楼 诺水城子 的回复:]
应该是值传递没处理正确
信号:
QObject::connect(this,SIGNAL(sendData(QVector<double>,QVector<QString>)),&m,SLOT(receiveData(QVector<double>,QVector<QString>)));
emit sendData(d_,st);
槽:
ui->edit_sigle->setText("请输入");//因为得到的赋值变量一直为空,所以想在界面测试一下,结果发现这段话没有在界面当中打印出来
cal_info=d;
st=m;
cal_info与st的值在槽函数中打印不为空,但是在其他方法中使用始终是空
[/quote]
你这看不出问题,你的cal_info,d两个变量是怎么定义的,是全局变量吗? 其他地方使用的时候是否已经赋值都是不确定的
st
wzscn
2019-08-08
打赏
举报
回复
QObject::connect(this,SIGNAL(sendData(QVector<double>&,QVector<QString>&)),&m,SLOT(receiveData(QVector<double>&,QVector<QString>&)));
信号槽参数要传引用才能正确传递数据。
liu4791
2019-08-08
打赏
举报
回复
引用 2 楼 诺水城子 的回复:
应该是值传递没处理正确
信号: QObject::connect(this,SIGNAL(sendData(QVector<double>,QVector<QString>)),&m,SLOT(receiveData(QVector<double>,QVector<QString>))); emit sendData(d_,st); 槽: ui->edit_sigle->setText("请输入");//因为得到的赋值变量一直为空,所以想在界面测试一下,结果发现这段话没有在界面当中打印出来 cal_info=d; st=m; cal_info与st的值在槽函数中打印不为空,但是在其他方法中使用始终是空
zhlwade1994
2022-01-14
举报
回复
@liu4791
楼主解决了吗?
Python知识点:如何在
函数
中
修改全局
变量
的值?
在
函数
之外定义的
变量
是全局
变量
。 全局
变量
可以在
函数
中
读取,但是默认情况下不能在
函数
的修改
变量
的值。 可以读取 下面的代码可以在
函数
中
成功打印粉丝数,因为
函数
可以读取全局
变量
的值: count = 30888 #全局
变量
,麦叔粉丝数 # 关注 def guanzhu(): print('麦叔的粉丝数是{}'.format(count)) # 取关 def quguan(): print('麦叔的粉丝数是{}'.format(count)) 不能修改 下面的代码会报错,因为
函数
默认不能修
C/C++ Qt 信号自定义
槽
函数
在Qt
中
,信号与
槽
机制是一种用于实现对象间通信的强大方式。这机制通过信号(signal)和
槽
(slot)的组合,使得对象能够以松散耦合的方式进行交互。信号是一种在特定事件发生时发出的通知,而
槽
则是响应信号的
函数
。信号与
槽
通过连接(connect)建立关联,当信号被发射时,关联的
槽
函数
将被调用。在老师和学生的例子
中
,老师可以发出一个信号,表示某个事件(例如,开始上课)。学生可以连接到这个信号的
槽
函数
中
,以执行相应的动作(例如,做好准备听课)。Qt允许用户创建自定义信号和
槽
,以适应特定的需求。
Qt信号和
槽
函数
之间的参数传递
Qt信号和
槽
函数
之间的参数传递 信号和
槽
内部的参数是如何传递的 Qt的信号
槽
机制
中
,信号是只声明不实现,同时可以发生重载。通常我们使用
函数
指针来指向具体重载版本,那么信号的这些参数去哪里了呢? 信号
函数
发出信号后,会将自己接收到的所有参数按照接收到类型、顺序、全部传递给
槽
函数
,所以我们在定义
槽
函数
的时候是可以去接收信号
函数
传过来的参数的——
槽
函数
的参数数量可以小于等于信号
函数
参数,但是剩下的参数应该跟信号
函数
的参数在类型和顺序上相对应。 例如: // 在信号发出者类
中
定义一个有参的信号
函数
void Tea
QT 的
槽
函数
可以接收到信号传过来的值,
槽
函数
里也可以运行其他代码,但不能使用ui对象,不能设置文本框
这是一个接收emit信号的
槽
,可接受的值却传不到文本框里,之后发现是这个
函数
不能使用ui对象,如何把ipstr的值传入linetext文本里呢?或者说如何使用发送过来的ipstr
变量
呢? debug输出的是正常的QString值 第三行和第四行的赋值文本框里都没有
改变
我用全局
变量
传到构造
函数
里也传不出来 希望大佬可以帮帮我 ...
QT--
槽
函数
和控件篇一
QT 将信号和
槽
集成在QObject类
中
;发送者和接受者都必须继承这个类。Q_OBJECT宏是实现信号和
槽
机制、属性系统和元对象系统的关键。Q_OBJECT宏必须出现在每个使用信号和
槽
的类
中
,因为它为这些类提供了必要的元数据和功能。信号在类的“signal”部分声明,不需要实现。但是可以有参数,使得
槽
函数
可以根据传递的数据执行相应的操作。这种机制非常灵活,允许在信号发出时传递具体的上下文信息,给
槽
函数
提供足够的信息来完成其任务。
Qt
21,472
社区成员
26,692
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章