繁体   English   中英

在插槽中使用QMap

[英]Use a QMap in a slot

我想使用以前创建的QMap以便在插槽内使用。 我尝试遵循此操作,但仍然无法正常工作(我认为我只是在做一些愚蠢的事情)。 这是我正在使用的代码。

构造函数:

QMap <int, QList<int> > tiles;
connect(ui->lineEdit, SIGNAL(editingFinished()), this, SLOT(someSlot()));

现在,每当我发送信号editingFinished时,我都希望someSlot检查该值是否在QMap中,如果是,则继续各种条件。 问题是,如何将QMap传递到插槽? Qt似乎不允许带参数的插槽。

插槽只是Qt调用的函数。 它的调用方式很神奇,但这只是一个函数。 参数被传递到信号中(就像常规函数一样),Qt最终将该参数(或更可能是该参数的副本)传递给接收器插槽。 在Qt中有一种逻辑,您不必在定义连接时像传递信号那样向插槽传递尽可能多的参数,但这不用于本讨论。

您无法在这样的连接中按名称传递参数。

您可以让tile对象成为实现someSlot()的类的成员变量,或者必须将tile传递给连接到someSlot(const QMap>&)的信号

我的建议是使tile为成员变量,而不是堆栈变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM