• 4741阅读
  • 1回复

请问主线程怎么获取QThread的returnCode [复制链接]

上一主题 下一主题
离线liujianboy
 
只看楼主 倒序阅读 楼主  发表于: 2007-09-04
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
因为有一个很耗时的函数,我把他的执行放在了一个新的线程里执行,我需要在它执行结束的时候返回成功或失败,我用void QThread::exit ( int returnCode = 0 )设置了不同情况下的返回值,但主线程里怎么获取这个返回值呢?
离线liujianboy
只看该作者 1楼 发表于: 2007-09-04
  1. class mythread:public QThread
  2. {
  3. public:
  4.     int ret;
  5.     void run()
  6.     {
  7.         int x=1;
  8.         if (x==1)
  9.         {
  10.             exit(8);
  11.         }
  12.         ret= exec();
  13.     }
  14. };
  15. class label:public QLabel
  16. {
  17.     Q_OBJECT
  18.     mythread *a;
  19. public:
  20.     label()
  21.     {
  22.         a = new mythread;
  23.         a->start();
  24.         connect(a,SIGNAL(finished()),this,SLOT(set()));
  25.     }
  26. private slots:
  27.     void set()
  28.     {
  29.         this->setNum(a->ret);
  30.     }
  31. };


做了一个小例子,发现ret得到的值并不是我设置的8,而是-1,究竟该怎么用啊?
快速回复
限100 字节
 
上一个 下一个