- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我不太明白 Qt::UniqueConnection
“标志”是如何工作的。
Qt::UniqueConnection
是 enum 中的常量Qt::ConnectionType
,“描述信号和槽之间可以使用的连接类型”。
如文档中所述,Qt::UniqueConnection
常量是:
Same as AutoConnection, but the connection is made only if it does not duplicate an existing connection. i.e., if the same signal is already connected to the same slot for the same pair of objects, then the connection will fail. This connection type was introduced in Qt 4.6.
基于以下示例:
for (int index = 0; index < 2; ++index)
{
QPushButton *myButton = new QPushButton("Button", this);
connect(myButton, SIGNAL(clicked()), this, SLOT(doSomething()), Qt::UniqueConnection);
}
它会根据按钮内存地址(我想)创建 2 个唯一连接(每个按钮一个)吗?
或者它会根据对象类型 (QPushButton
) 和使用的信号和槽只创建一个连接(第二个连接会失败)?
最佳答案
如果你不放这个标志,这意味着你可以做同样的连接:即。相同的发送者对象、相同的接收者对象、相同的信号和相同的 Slot 不止一次。
插槽将被调用的次数与您建立此连接的次数相同。
但是你不应该在不必要的时候滥用这个标志,因为它会验证你的连接是否已经存在,这意味着代码会变慢。
Note :Qt::UniqueConnection
不适用于 lambda、非成员函数和仿函数;它们仅适用于连接到成员函数。
关于c++ - Qt::UniqueConnection 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121597/
我不太明白 Qt::UniqueConnection “标志”是如何工作的。 Qt::UniqueConnection 是 enum 中的常量Qt::ConnectionType,“描述信号和槽之间可
我是一名优秀的程序员,十分优秀!