新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
从主线程发送信号给子线程,子线程里的connect函数怎么个写法? ..
发帖
回复
返回列表
新帖
16448
阅读
14
回复
从主线程发送信号给子线程,子线程里的connect函数怎么个写法???(修改)
[复制链接]
上一主题
下一主题
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2008-11-19
— 本帖被 XChinux 执行加亮操作(2008-11-30) —
在主线程里设置一个按钮,一按下去,就向某特定的子线程发送信号,该子线程与某特定IP地址的客户端相连,根据socketDescriptor可以把各子线程区分开来??这个值始终不会改变
请问QT里有
其他
成熟的机制可实现这个功能吗,
[ 此贴被succulent在2008-11-19 15:57重新编辑 ]
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
vrcats
UID:68499
注册时间
2008-11-04
最后登录
2008-12-02
在线时间
40小时
发帖
226
搜Ta的帖子
精华
0
金钱
2280
威望
229
贡献值
0
好评度
228
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
1楼
发表于: 2008-11-19
每个线程创建的时候都保留个指针就可以了,也可以用thread id来区分
共
条评分
回复
举报
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
2楼
发表于: 2008-11-19
发现这真的是个大问题
比如主线程界面创建一个button,按下去后发送一个信号click(),信号发给了子线程1,但是,怎么找到这个线程呢,button按下去,只能发送一个信号click,没法添加别的参数啊
共
条评分
回复
举报
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
3楼
发表于: 2008-11-19
是否可以这样,click以后,就发送一个信号到this的一个自定义slot中,在这个slot里,定义好要控制的子线程的标志号,并再发送一个信号到相应的子线程!那样就解决了
共
条评分
回复
举报
离线
vrcats
UID:68499
注册时间
2008-11-04
最后登录
2008-12-02
在线时间
40小时
发帖
226
搜Ta的帖子
精华
0
金钱
2280
威望
229
贡献值
0
好评度
228
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
4楼
发表于: 2008-11-19
好像只有这个办法,Qt本身不提供Thread等级的Dispatcher,只能自己维护一个了
共
条评分
回复
举报
离线
water_wf
UID:21207
注册时间
2007-04-17
最后登录
2017-11-17
在线时间
529小时
发帖
585
搜Ta的帖子
精华
0
金钱
5860
威望
587
贡献值
0
好评度
586
访问TA的空间
加好友
用道具
骑士
加关注
发消息
只看该作者
5楼
发表于: 2008-11-19
那看你怎么把button和thread联系起来的,怎么发就行了
共
条评分
回复
举报
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
6楼
发表于: 2008-11-19
连接到最后出了个问题
我在子线程类里定义了slot recdown
然后在构造函数中写了
connect(MainWindowImpl, SIGNAL(tothread(QString)), this, SLOT(recdown(QString)));
其中MainWindowImpl就是主线程类,从它那里发出了个tothread信号,这个信号里包含着所要控制的子线程的标志信息,可以是IP地址,也可以是独一无二的参数等等。
但问题是,在子线程中,并没有主线程的实例,所以,这句话肯定是语法错误的,用什么来替代MainWindowImpl才能编译通过呢
共
条评分
回复
举报
离线
water_wf
UID:21207
注册时间
2007-04-17
最后登录
2017-11-17
在线时间
529小时
发帖
585
搜Ta的帖子
精华
0
金钱
5860
威望
587
贡献值
0
好评度
586
访问TA的空间
加好友
用道具
骑士
加关注
发消息
只看该作者
7楼
发表于: 2008-11-19
你肯定有一个thread list来管理创建的thread的对不对,如果没有,&&^^#$#%%
,在创建的地方链接即可,如果在dialog中创建的,可以先链接到dialog上,在dialog链接到mainwindow上,麻烦一步而已,当然也可以一步到位
slot/signal就是一种通信方法(更方便写),而且qt4是线程安全的,可以多级连的connect(,signal(**),,signal(**)),具体看你的设计
共
条评分
回复
举报
离线
water_wf
UID:21207
注册时间
2007-04-17
最后登录
2017-11-17
在线时间
529小时
发帖
585
搜Ta的帖子
精华
0
金钱
5860
威望
587
贡献值
0
好评度
586
访问TA的空间
加好友
用道具
骑士
加关注
发消息
只看该作者
8楼
发表于: 2008-11-19
或者直接链接到thread list 的管理器(类似线程池管理器),然后它来负责告诉那个thread来相应这个消息
共
条评分
回复
举报
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
9楼
发表于: 2008-11-19
呵呵,我没有thread list这个东东,我搜搜去,不懂的地方还很多,qt自带的example里也没有出现
目前signal已经可以发出来了,问题出在我不知道该怎么在thread里进行接收,thread里定义个slot也没问题
但connect的时候,比如connect(XXX,signal,this,slot)
前面这个XXX我不知道如何写了,比如信号是从类A里面发送的,那么我是否就该在thread里 A aaa;然后XXX=aaa
或者用你所说的thread list可以解决这个问题?我先学习一下,谢谢
共
条评分
回复
举报
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
10楼
发表于: 2008-11-19
哎,是我自己糊涂了,原来跟从子线程到线程是一样的道理,逐级跳
共
条评分
回复
举报
离线
evoleci
UID:64962
注册时间
2008-09-22
最后登录
2009-12-01
在线时间
28小时
发帖
25
搜Ta的帖子
精华
0
金钱
250
威望
26
贡献值
0
好评度
25
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
11楼
发表于: 2008-12-10
succulent你好,
我遇到了和你一样的问题,就是在子线程中接收信号并响应的时候connect(XXX,signal,this,slot),XXX那个地方不知道如果填写,就是不知道如果识别主线程的ID,请指教!
谢谢
共
条评分
我们只是在经历着一些事情。
回复
举报
离线
succulent
UID:51173
注册时间
2008-07-10
最后登录
2009-04-09
在线时间
63小时
发帖
104
搜Ta的帖子
精华
0
金钱
1050
威望
106
贡献值
0
好评度
105
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
12楼
发表于: 2008-12-10
我的connect是写在定义子线程变量的程序段中
比如,我在a.cpp中QThread thread
那么,就connect(this,SIGNAL,thread,SLOT);
共
条评分
回复
举报
离线
evoleci
UID:64962
注册时间
2008-09-22
最后登录
2009-12-01
在线时间
28小时
发帖
25
搜Ta的帖子
精华
0
金钱
250
威望
26
贡献值
0
好评度
25
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
13楼
发表于: 2008-12-12
TO succulent :
呵呵,谢谢,把自己绕到死胡同里去了 ,狂汗
PS:这两天系统挂掉了,才上来看到,非常感谢
共
条评分
我们只是在经历着一些事情。
回复
举报
离线
jwqacqy
UID:88374
注册时间
2009-12-04
最后登录
2012-11-07
在线时间
77小时
发帖
104
搜Ta的帖子
精华
0
金钱
1060
威望
116
贡献值
0
好评度
106
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
14楼
发表于: 2010-08-12
反过来想就行了
connect(this, SIGNAL(change_bri(int)),&thread, SLOT(bri_slot(int)));
其中this是主线程的 change_bri(int) 是主线程的信号 ,&thread,是子线程的ID bri_slot(int)是子线程的slot
共
条评分
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选