首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QSignalSpy上使用foreach循环

如何在QSignalSpy上使用foreach循环
EN

Stack Overflow用户
提问于 2013-08-02 20:14:17
回答 1查看 563关注 0票数 1

如何在foreach上使用QSignalSpy循环

这就是我想要做的:

代码语言:javascript
复制
foreach( const QList<QVariant> &args, mySignalSpy )
{
    Q_ASSERT( args.count() == 2 );
    QVariant arg0 = args[0];
    QVariant arg1 = args[1];
    doSomething( arg0, arg1 );
}

这是我得到的错误:

代码语言:javascript
复制
/usr/local/Trolltech/Qt-4.8.2-shared/include/QtTest/qsignalspy.h: In instantiation of ‘QForeachContainer<T>::QForeachContainer(const T&) [with T = QSignalSpy]’:
MyTester.cxx:843:64:   required from here
/usr/local/Trolltech/Qt-4.8.2-shared/include/QtCore/qobject.h:333:5: error: ‘QObject::QObject(const QObject&)’ is private
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-02 20:23:53

foreach制作传递容器的副本。QSignalSpy继承了QObject,因此不能复制。这两个事实导致了错误。

最简单的解决方法是使用通常的for循环。您还可以创建列表的非QObject副本,并使用它来迭代:

代码语言:javascript
复制
QList< QList<QVariant> > list = mySignalSpy;
foreach( const QList<QVariant> &args, list ) {
  //...
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18025439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档