1

我想用子对象(线程QObject)创建(对象),并以该对象为父对象(用于在对象存活时保持线程存活)并制作但在这种情况下启动线程的信号不起作用。QThreadobject.moveToThread(thread)

简单地:

  1. 对象拥有线程
  2. 对象移动到线程
  3. 信号启动线程不工作

这是怎么回事?

4

1 回答 1

1

[编辑]:由于评论而放弃了我最初的答案

也许这样做如下:

  1. 创建对象
  2. 创建线程,但不要为其分配父级
  3. 像往常一样将 Thread 的 finished() 信号连接到它的 deleteLater() 槽
  4. 将 Object 的 deleted() 信号连接到线程的 stop() 槽

然后,当您删除对象时,它会发出已删除的(),这将停止线程。该线程将发出finished(),这将调用它的deleteLater() 槽。

于 2012-04-19T07:21:15.617 回答