|
问: 16:00:51
timer = new QTimer(this);
timerFlag =false;
connect(timer,SIGNAL(timeout()),this,SLOT(timerDone()));
timer->start(1000);
while(1)
{
if(timerFlag == true)break;//超时退出
}
问: 16:01:20
void ConnectDialog::timerDone()//超时处理函数
{
timerFlag=true;
disconnect(timer,SIGNAL(timeout()),this,SLOT(timerDone()));
delete timer;
}
问: 16:01:45
这样写,为什么是死循环。
橙 子<lizheng310@vip.qq.com> 16:03:10
处理函数会执行吗
问: 16:04:00
单片机程序写多了,想当然了。
问: 16:04:25
把槽函数当单片机中断玩了。
Howe(423286697) 16:05:19
如果定时器只用一次的,怎么不用QTimer::singleShot 呢
问: 16:05:28
不知道这里都是用什么处理办法,是不是要用多线程,还是什么?
问: 16:06:34
是打开只用一次。
橙 子<lizheng310@vip.qq.com> 16:07:37
用exec()超时后exit()
A: 16:08:40
不能用定时器触发槽吗?
橙 子<lizheng310@vip.qq.com> 16:09:41
可以
橙 子<lizheng310@vip.qq.com> 16:10:31
你把while删了 写上 this->exec(),试试
橙 子<lizheng310@vip.qq.com> 16:11:22
在槽里输出一下 看执行了没
A: 16:11:50
你是想定时?这样写?
A: 16:11:54
晕你了
A: 16:12:14
延时多少 是吧?
问: 16:14:30
不是写延时,是遍历系统可用串口并打开串口,向串口发送连接命令,在1秒内接收到电路有效回应,就记录下设备的相关信息。
A: 16:15:42
设置超时吧 意思是
问: 16:15:59
嗯,是的。
A: 16:16:35
其实槽函数就相当于中断 是会返回的
A: 16:17:35
读串口的槽函数 设个标志位
A: 16:18:46
在延时函数里面查询就是了 一秒没查询到置位 那就是超时了啊 返回false
问: 16:19:02
那我的写法就应该没错的,while(1){if(timeflag==1)break;}超时的槽函数把这个标志位置1,但事实并不是这样的。
A: 16:19:26
为什么这样写?
问: 16:19:51
QByteArray temp;
temp = myCom->readAll();
if(!((temp.isEmpty())|(temp.isNull())))
{
reapt.append(QString(temp));
qDebug()<<reapt<<endl;
if((!reapt.startsWith("Ok"))&&(reapt.size()>=2))reapt.clear();
if(reapt.endsWith('\n'))endFlag = true;
}
A: 16:19:53
你没运行超时的函数 如何查询?
A: 16:20:55
你没运行超时的函数 如何查询?
问: 16:20:55
看来,我又掉进死胡同了。
A: 16:21:19
假如没有返回 那你不是死循环了?
A: 16:21:46
我也是做单片机的
A: 16:21:50
也没你这样做
静心(501809514) 16:22:03
呵呵
问: 16:22:06
qtimer启动后,超时不会自动发送timeout信号吗?
A: 16:22:29
那我就不知道了
A: 16:23:38
我的超时函数
A: 16:23:39
bool Widget::sleep(unsigned int msec)
{
QTime dieTime = QTime::currentTime().addMSecs(msec);
while( QTime::currentTime() < dieTime )
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
if(lock_flag)
{
lock_flag = false;
return true;
}
}
return false;
}
问: 16:27:33
嗯,好的,晚上我回去,参考你的,在多看看资料。谢谢。
A: 16:27:51
我是个新手 不一定行
A: 16:28:07
本地图片,请重新上传
问: 16:29:13
谦虚了,放心,肯定会多查多看,不会只盯着你的代码研究。
A: 16:29:14
你是读书郎?
问: 16:29:46
不是,我毕业两三年了,qt是去年自己自学的。
A: 16:30:22
我也是过年才做了下Qt 发现只会用 但是看不懂
B: 16:30:24
仟門现在用QT来做什么?
A: 16:30:36
所以目前在学习C++
问: 16:30:47
只是想做一个串口的上位机,和自己的电路通信。
B: 16:31:14
仟門
现在做什么工作?
问: 16:31:42
本地图片,请重新上传楼上你打听那么多,干嘛?
B: 16:32:17
本地图片,请重新上传看看都是搞些什么的,多向你们学习学习
橙 子<lizheng310@vip.qq.com> 16:32:35
本地图片,请重新上传让我郁闷的是一直再close_wait 就是不关闭
问: 16:33:10
我做八位单片机开发,有时间帮忙把楼上问题解决一下。
问: 16:33:35
我心有余,力不足本地图片,请重新上传本地图片,请重新上传
A: 16:35:28
我是M0
A: 16:35:47
你什么型号?
问: 16:36:23
我比你低级,elan,stc,avr,pic。
A: 16:36:54
elan不知道是什么
问: 16:37:40
台系单片机,elan holtek
问: 16:37:55
都白菜的价格。
问: 16:38:13
一元不到一片。
A: 16:38:36
。。。
问: 16:39:06
m3还知道,m0没研究过。
A: 16:39:24
你会写makefile
问: 16:39:31
nxp的?
A: 16:39:35
M几都差不多
A: 16:39:46
是的
|
|