问题标签 [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.

0 投票
2 回答
7522 浏览

multithreading - 通过 QList* 来自 QThread 的信号

在我的 qt 应用程序中,我有一个从线程中运行的对象调用的类(worker)。在我的工人阶级中,我创建了 QList,就像这样

我在另一个包装我的工人的类中收到这个信号,以供线程使用。我们将这个类称为 GetAlbumsThread。在那里我成功地在一个插槽中接收到 SignalGotAlbums

在这个插槽中,我正在触发另一个信号 gotAlbums,该信号假定与我的 gui 线程中的一个插槽连接,并在那里传递我的 QList。我的问题是,当我试图将 QList 从线程传递到 gui 时,它只是不起作用!插槽未收到 gotAlbums 信号;

信号声明如下:

并像这样连接到我的 gui 插槽(当然是在我的 gui 线程中):

AlbumsReceived 出于某种原因永远不会被调用。连接返回真。有人可以帮我弄这个吗。我认为问题出在线程之间传递的 QList 中。

0 投票
1 回答
2054 浏览

c++ - 使用 QHash 和 QList 提高性能

我正在使用这些类:

QHash: 表示场景的所有对象(不能修改这个类)

QList: 表示所有选定的对象。它包含 ID(另存为int

因此,例如,如果我选择对象 #77,则其 ID 保存在Hitslist( QList) 中。

之后HitsList被排序并被DrawSelectedObjects()调用。

它必须迭代QHash直到counter=77Draw_as_selected()。之后,QList删除第一个元素,将第二个元素拉到前面。

每次选择一个对象时都会调用此函数。导入的小场景一切正常,但是当我使用大于 10MB 的文件时,我可以看到一些输出滞后(很明显,因为我正在迭代一个巨大的QHash)。

你能建议我一个更有效的方法吗?任何帮助,将不胜感激。

编辑:

感谢您的回复。问题是我无法摆脱它QList<int>(我只能将整数推送到 OpenGL 选择堆栈的顶部)。

因此,上述解决方案的另一种方法是对QString.toInt()的每个元素执行QHash并将它们保存到QList<int>.

事实是......如何使用(现在通过转换计算,不再从计数器计算)在QString哈希上找出正确的?intQStringQList

0 投票
3 回答
2814 浏览

qt - qlist - 避免内存泄漏

为类型创建的列表T_testStepDetails:--

将内存分配给以下各项T_testStepDetails:----

附加到列表中:---

空闲内存:----

所以释放内存上述步骤足以防止内存泄漏?

或者对于列表中的每个类型的结构,我必须为我为其动态分配内存T_testStepDetails的内部成员释放内存char*?

0 投票
1 回答
5068 浏览

c++ - QList 析构函数行为 - 是否对列表中的指针调用 delete/free()?

我有一个class SomeObjectList : public QList<SomeObject*>

我正在创建指向SomeObject并将它们粘贴在列表中的指针,如下所示:

我在QList析构函数中崩溃了,看起来 free() 可能被调用了。我找到了函数的源代码(Qt 4.8.2),它看起来像这样:

这是否意味着free()在调用析构函数时正在对列表中剩余的任何指针进行调用?我在其他地方使用过列表没有这个问题。析构函数在什么情况下调用free()

0 投票
2 回答
2008 浏览

c++ - QList 作为函数参数 - 链接错误 - LNK2019

我对 QList 作为函数参数有疑问,如果您能帮助我,我会很高兴。

例如,我有以下代码:

在实现文件中,我使用QList<QWidget *>变量作为指针:

(controlBoardSpinBoxList是 的一个变量QList<QWidget *>)。

FunctionToggleBoards_Slot(bool)是一个使用的插槽。编译时,我收到以下错误消息:

我怎样才能解决这个问题?

0 投票
1 回答
2025 浏览

c++ - 将指向类的指针附加到 QList QList

在我的 mainwindow.h 我有一个 QList m_qlServoList 应该存储指向伺服对象的指针:

当我尝试将新的伺服指针附加到 QList 时:

以下错误结果:

Servo 类标头如下所示:

如果有人能解释我在这里做错了什么,那就太好了。以及如何正确地将指针附加到伺服对象。

0 投票
1 回答
1090 浏览

c++ - QList 如何决定是存储指针还是存储项目本身?

文档

在内部,QList 表示为指向 T 类型项目的指针数组。如果 T 本身是指针类型或不大于指针的基本类型,或者如果 T 是 Qt 的共享类之一,则 QList 存储项目直接在指针数组中。

我很想知道,如何QList根据类型“决定”是存储指针还是存储项目本身?

他们是否使用一些深奥的模板语法来做到这一点?

0 投票
1 回答
6394 浏览

c++ - Qt获取两个QLists交集的方法是什么?

我有两个QLists 我需要确定交集(在这种特定情况下,两个QStringLists,但我认为这将适用于每个容器,只要Timplements operator==())。

Qt 确定列表之间交集的方法是什么?

编辑:

订单和重复不是问题。我只是在寻找两个列表中都存在的项目。

0 投票
2 回答
1914 浏览

qt - 我怎样才能制作一个QList独特的

我有一个QListQVector3D. AQVector3D代表一个顶点或一个点。这个 List 还包含 a 的所有顶点STL-File。问题是一个顶点在列表中存在多次。需要一个 STL 文件的唯一顶点列表。我怎样才能实现它Qt 5.0.2

0 投票
2 回答
212 浏览

c++ - QList运行时错误

我有一个 QList 用于在 QgraphicsScene 上存储一些项目,例如:

当我想像这样使用它时:

我遇到了运行时错误。我很好奇为什么?

顺便说一句,我知道 linelist.append()

谢谢。