问题标签 [qlist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - 通过 QList* 来自 QThread 的信号
在我的 qt 应用程序中,我有一个从线程中运行的对象调用的类(worker)。在我的工人阶级中,我创建了 QList,就像这样
我在另一个包装我的工人的类中收到这个信号,以供线程使用。我们将这个类称为 GetAlbumsThread。在那里我成功地在一个插槽中接收到 SignalGotAlbums
在这个插槽中,我正在触发另一个信号 gotAlbums,该信号假定与我的 gui 线程中的一个插槽连接,并在那里传递我的 QList。我的问题是,当我试图将 QList 从线程传递到 gui 时,它只是不起作用!插槽未收到 gotAlbums 信号;
信号声明如下:
并像这样连接到我的 gui 插槽(当然是在我的 gui 线程中):
AlbumsReceived 出于某种原因永远不会被调用。连接返回真。有人可以帮我弄这个吗。我认为问题出在线程之间传递的 QList 中。
c++ - 使用 QHash 和 QList 提高性能
我正在使用这些类:
QHash
: 表示场景的所有对象(不能修改这个类)
QList
: 表示所有选定的对象。它包含 ID(另存为int
)
因此,例如,如果我选择对象 #77,则其 ID 保存在Hitslist
( QList
) 中。
之后HitsList
被排序并被DrawSelectedObjects()
调用。
它必须迭代QHash
直到counter=77
和Draw_as_selected()
。之后,QList
删除第一个元素,将第二个元素拉到前面。
每次选择一个对象时都会调用此函数。导入的小场景一切正常,但是当我使用大于 10MB 的文件时,我可以看到一些输出滞后(很明显,因为我正在迭代一个巨大的QHash
)。
你能建议我一个更有效的方法吗?任何帮助,将不胜感激。
编辑:
感谢您的回复。问题是我无法摆脱它QList<int>
(我只能将整数推送到 OpenGL 选择堆栈的顶部)。
因此,上述解决方案的另一种方法是对QString.toInt()
的每个元素执行QHash
并将它们保存到QList<int>
.
事实是......如何使用(现在通过转换计算,不再从计数器计算)在QString
哈希上找出正确的?int
QString
QList
qt - qlist - 避免内存泄漏
为类型创建的列表T_testStepDetails
:--
将内存分配给以下各项T_testStepDetails
:----
附加到列表中:---
空闲内存:----
所以释放内存上述步骤足以防止内存泄漏?
或者对于列表中的每个类型的结构,我必须为我为其动态分配内存T_testStepDetails
的内部成员释放内存char*
?
c++ - QList 析构函数行为 - 是否对列表中的指针调用 delete/free()?
我有一个class SomeObjectList : public QList<SomeObject*>
我正在创建指向SomeObject
并将它们粘贴在列表中的指针,如下所示:
我在QList
析构函数中崩溃了,看起来 free() 可能被调用了。我找到了函数的源代码(Qt 4.8.2),它看起来像这样:
这是否意味着free()
在调用析构函数时正在对列表中剩余的任何指针进行调用?我在其他地方使用过列表没有这个问题。析构函数在什么情况下调用free()
?
c++ - QList 作为函数参数 - 链接错误 - LNK2019
我对 QList 作为函数参数有疑问,如果您能帮助我,我会很高兴。
例如,我有以下代码:
在实现文件中,我使用QList<QWidget *>
变量作为指针:
(controlBoardSpinBoxList
是 的一个变量QList<QWidget *>
)。
FunctionToggleBoards_Slot(bool)
是一个使用的插槽。编译时,我收到以下错误消息:
我怎样才能解决这个问题?
c++ - 将指向类的指针附加到 QList QList
在我的 mainwindow.h 我有一个 QList m_qlServoList 应该存储指向伺服对象的指针:
当我尝试将新的伺服指针附加到 QList 时:
以下错误结果:
Servo 类标头如下所示:
如果有人能解释我在这里做错了什么,那就太好了。以及如何正确地将指针附加到伺服对象。
c++ - QList 如何决定是存储指针还是存储项目本身?
从文档:
在内部,QList 表示为指向 T 类型项目的指针数组。如果 T 本身是指针类型或不大于指针的基本类型,或者如果 T 是 Qt 的共享类之一,则 QList 存储项目直接在指针数组中。
我很想知道,如何QList
根据类型“决定”是存储指针还是存储项目本身?
他们是否使用一些深奥的模板语法来做到这一点?
c++ - Qt获取两个QLists交集的方法是什么?
我有两个QList
s 我需要确定交集(在这种特定情况下,两个QStringList
s,但我认为这将适用于每个容器,只要T
implements operator==()
)。
Qt 确定列表之间交集的方法是什么?
编辑:
订单和重复不是问题。我只是在寻找两个列表中都存在的项目。
qt - 我怎样才能制作一个QList独特的
我有一个QList
由QVector3D
. AQVector3D
代表一个顶点或一个点。这个 List 还包含 a 的所有顶点STL-File
。问题是一个顶点在列表中存在多次。需要一个 STL 文件的唯一顶点列表。我怎样才能实现它Qt 5.0.2
?
c++ - QList运行时错误
我有一个 QList 用于在 QgraphicsScene 上存储一些项目,例如:
当我想像这样使用它时:
我遇到了运行时错误。我很好奇为什么?
顺便说一句,我知道 linelist.append()
谢谢。