c语言sscanf函数的用法是什么
344
2022-08-31
QT 槽函数使用记录 —— 进度条弹窗事件
起初我是这样想的:在测试按钮的槽函数中先让进度条窗口show出来,然后调用进度条更新函数。简单的说就是这样:
void
但是这样的结果是窗体弹出后,进度条不显示,同时进度条更新的函数不断发挥作用,从qt creator的log中可以看出value值不断地更新,一直到100%进度条才显示出来。 如下图所示:
然后,我设想将
progresswin->progressUpdate();变成另一个信号发送,触发progressUpdate的槽函数,或者,测试按钮的click信号对应两个槽函数show(), progressUpdate()。他们的效果是一样的。
虽然一个信号可以对应多个槽函数,但是执行的次序与效果却没有保障。在读了更多关于信号和槽的工作机制后让我意识到,最好是一个信号对应一个槽函数,一个槽函数仅完成一项功能。
于是,我将方案换成这样:
void slotFunc(){progressWin->show();timer->setSingleShot(true);timer->start(10);// testStart() calls progressUpdate()connect(timer,SIGNAL(timeout()),progressWin,SLOT(testClass->testStart());}
在我解决这个问题后不久,我的同事提出了他的方案: 让testClass继承QThread,将testStart写入
virtual void run();中,在测试按钮的click函数中调用testClass的
start() ,它继承于
[slot] void QThread::start(Priority priority = InheritPriority)。由此唤醒run函数线程,这算是另一种形式的触发。达到了同样的效果。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~