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吗?? 展开
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吗?? 展开
4个回答
展开全部
qt的一个connect槽函数内可以再新起另一个connect,但是新的connect要有相关的事件循环才能进行,感觉你这个的问题在意run_video应该在另一个线程,这个线程没开启事件循环。
追问
我的run_video还是在主线程里面,,我在run_video函数里设置断点,,根本它不进去,,无解
追答
可能是timer不在主线程,是另起的线程。。。没仔细研究过timer的机制,但是你看timer的函数,线程该有的它都有,所以可能是继承自线程的。所以,,我猜需要mivetothread?乱猜的,,,感觉这方法不怎么靠谱。或者connect的时候设置好方式为同步方式试试。这样就像回调一样的执行。
展开全部
请问问题解决了吗?我也有同样的问题,求助呀大神
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把timer设置为private试试?就是不在函数里面定义
追问
我的timer是在类里定义的,不是在函数里定义的,只是在函数里有timer = new QTimer(this);,,我以前的timer定义的是public,,改为private还是不行,,,,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,这个问题你解决了吗,我也遇到了一模一样的问题呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询