qt中在一个connect的槽函数中再次建立另一个connect,不能进入槽函数

如题,,举个例子吧,我在主线程的构造函数中我有一个connect:connect(ui->open_video_button,SIGNAL(clicked()),this... 如题,,举个例子吧,我在主线程的构造函数中我有一个connect:
connect(ui->open_video_button,SIGNAL(clicked()),this,SLOT(open_video()));

在槽函数open_video()中我定义了另一个connect:
timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(run_video(capture)));
timer->start(20);

由于要显示视频,我使用qtimer类计时器,,单当计时器超时timeout,,,,却一直不能进入这个函数run_video(capture)里面,,,我在run_video(capture)函数里设断点,却一直不能进去,,,

不知道是什么原因,,是qt的一个connect槽函数内不能再新起另一个connect吗??
展开
 我来答
godinu
2014-04-08 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:106万
展开全部
qt的一个connect槽函数内可以再新起另一个connect,但是新的connect要有相关的事件循环才能进行,感觉你这个的问题在意run_video应该在另一个线程,这个线程没开启事件循环。
追问
我的run_video还是在主线程里面,,我在run_video函数里设置断点,,根本它不进去,,无解
追答
可能是timer不在主线程,是另起的线程。。。没仔细研究过timer的机制,但是你看timer的函数,线程该有的它都有,所以可能是继承自线程的。所以,,我猜需要mivetothread?乱猜的,,,感觉这方法不怎么靠谱。或者connect的时候设置好方式为同步方式试试。这样就像回调一样的执行。
汗青L
2019-07-30
知道答主
回答量:1
采纳率:0%
帮助的人:720
展开全部
请问问题解决了吗?我也有同样的问题,求助呀大神
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黄software
2014-04-08 · TA获得超过178个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:98.2万
展开全部
把timer设置为private试试?就是不在函数里面定义
追问
我的timer是在类里定义的,不是在函数里定义的,只是在函数里有timer = new QTimer(this);,,我以前的timer定义的是public,,改为private还是不行,,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
艺艺X3Azt
2018-07-31
知道答主
回答量:1
采纳率:0%
帮助的人:846
展开全部
亲,这个问题你解决了吗,我也遇到了一模一样的问题呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式