在插槽中使用 QMap
Use a QMap in a slot
我想使用我之前创建的QMap在插槽中使用。我试过遵循这个,但它仍然不起作用(我想我只是在做一些愚蠢的事情)。这是我正在使用的代码。
构造 函数:
QMap <int, QList<int> > tiles;
connect(ui->lineEdit, SIGNAL(editingFinished()), this, SLOT(someSlot()));
现在,每当我发送信号编辑完成时,我都希望某个插槽检查该值是否在 QMap 中,如果是,则继续处理各种条件。问题是,如何将我的 QMap 传递到插槽?Qt似乎不允许带有参数的插槽。
插槽只是Qt调用的一个函数。它的称呼方式有魔力,但它只是一个函数。参数被传递到信号中(就像常规函数一样),Qt最终将该参数(或者更可能是该参数的副本)传递给接收槽。Qt中有逻辑,在定义连接时,您不必像向信号传递那么多参数,但这不是本讨论的。
不能在这样的连接中按名称传递参数。
你可以让你的tiles对象成为实现someSlot()的类的成员变量,或者你必须将tiles传递给连接到someSlot(const QMap>&)的信号。
我的建议是使磁贴成为成员变量,而不是堆栈变量
相关文章:
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何在没有信号的情况下从C++执行QML插槽
- 从Q_INVOKABLE功能或插槽中更改QQuick图像源
- 升压信号2将插槽传递到成员功能以断开连接
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- C++ 信号和插槽不工作:插槽不响应事件
- NS3 插槽混淆(需要帮助理解)
- QObject::连接无法将信号连接到*this*对象的插槽
- QT 插槽未在主线程上调用
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 控制带有信号/插槽的Qt QML滑动视图
- Qt 信号/插槽问题
- QT5 信号不会激活插槽内的功能
- Qt5:连接:如果插槽的参数少于信号,如何使用"连接"
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- Qt插槽调用了两次
- C++Qt信号和插槽
- 从插槽调用 QApplication::p rocessEvents 会导致再次调用同一插槽
- 在插槽中使用 QMap