【发布时间】:2013-07-08 18:53:36
【问题描述】:
Qt documentation 为 Qt::ConnectionType 提供以下值:
AutoConnection = 0;
DirectConnection = 1;
QueuedConnection = 2;
BlockingQueuedConnection = 4;
UniqueConnection = 0x80;
很明显,这表明您可以同时拥有BlockingQueuedConnection 和UniqueConnection 的连接。但是,仅将这两者与| 运算符组合会导致编译器错误:
connect(foo, SIGNAL(bar()), this, SLOT(bar()),
BlockingQueuedConnection | UniqueConnection));
error: invalid conversion from 'int' to 'Qt::ConnectionType'
所以参数必须强制转换:
connect(foo, SIGNAL(bar()), this, SLOT(bar()),
(Qt::ConnectionType) (BlockingQueuedConnection | UniqueConnection)));
在这种情况下,由于某种原因,铸造感觉是错误的。这真的是建立唯一阻塞队列连接的合适方法吗?
【问题讨论】: