【发布时间】:2012-12-08 00:21:40
【问题描述】:
这是一个关于 qthreads 的一般问题,我知道如何使用 movethread() 函数,但那是针对非动态创建的对象。
用户将通过选择添加按钮在 GUI 应用程序上创建对象。如果用户想要删除已创建的对象,也可以使用删除按钮。用户应该能够从列表视图中选择对象。我已经使用 qstyleeditemdelegate 创建了自定义列表视图的示例,我知道如何将列表移动到模型中。我担心线程。
我想做的是允许用户动态创建某个类的对象。然后将每个对象移动到 qthread 中。我应该继续寻找吗?任何提示、技巧或提示?
我可以创建一个将对象移动到线程中的函数吗?
Pseudo Code:
void MoveThisObject(MyCustomObject Object)
{
QThread* thread = new QThread;
Object->moveToThread(thread);
/****setup connections****/
thread->start();
}
我仍在写下我需要的东西,我还没有真正创建实际的应用程序。
【问题讨论】:
-
第一个问题:您正在通过值传递
Object。因此,被移动的对象将一直存在到MoveThisObject()的末尾。正如您所说的Object->,您可能只是错过了* -
既然用户可以选择列表视图项,我可以使用索引值来定位为该选定项运行的线程吗?
-
听起来你想存储生成的线程,例如在
QHash<int, QThread*>.