• 4765阅读
  • 3回复

有关定时器嵌套及其中一个自动停止的问题,高手进 [复制链接]

上一主题 下一主题
离线z000356
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-11
有关定时器嵌套及其中一个自动停止的问题:小弟想用一个定时器timer1查询控制命令"ok"是否接受,如果接受则启动另外一个定时器timer2,在另外的定时器timer2中再判断是否有结束字符:END,如果有则结束timer2,现在的问题是当出现字符END时程序段错误,经过排除初步确定是timer2 -> stop();的问题,请问各位大侠这个怎么解决?
Form1::Form1( QWidget* parent,  const char* name, WFlags fl )
    : QWidget( parent, name, fl=Qt::WStyle_Customize|Qt::WStyle_NoBorder )
{
    if ( !name )
    setName( "Form1" );
    resize( 800, 480 );
    setMinimumSize( QSize( 800, 480 ) );
    setMaximumSize( QSize( 800, 480 ) );
    setCaption( tr( "Form1" ) );
    setPalette( QPalette( QColor( 255, 255, 255) ) );
  
    QTimer *timer1= new QTimer(this,"timer1");
    timer1 -> start(100);
    connect( timer1, SIGNAL(timeout()), this, SLOT( slots1() ));

void Form1::slots1()
{  
  if((get_data[0]=='o') && (get_data[1]=='k'))
        {
          QTimer *timer2= new QTimer(this,"timer2");
          timer2-> start(1000);
          connect( timer2, SIGNAL(timeout()), this, SLOT( slots2() ));
          LineEdit_r3->setText(tr("ok"))
        }
}
void Form1::slots2()
{
    if(data_save.find(QRegExp("END"),0)==203)
     {
      timer2 -> stop();
     }
}
}
离线rqzrqh

只看该作者 1楼 发表于: 2009-09-11
没看出来。楼主把整个文件贴出来看看
离线dbzhang800

只看该作者 2楼 发表于: 2009-09-11
要贴就贴完整点,精简的话,至少要说明一下,或者精简后不要影响正确性。

不然,代码都没法看吧。比如你的 timer2,从你贴的代码看,肯定是两个timer2变量,一个是局部变量,一个是全局变量。
离线z000356
只看该作者 3楼 发表于: 2009-09-11
hehe 谢谢 楼上的2为仁兄了  “一个是局部变量,一个是全局变量”  这个是正解
快速回复
限100 字节
 
上一个 下一个