QListWidgetItem使用QIcon的奇怪错误

时间:2012-10-15 22:33:05

标签: qt boost qt4 icons qlistwidget

我正在构建一个QListWidget,浏览一个目录,以便每个“.png”都会列出一个预览图标。

我的填充循环的核心如下所示:

new QListWidgetItem( QIcon(act_fullname), act_filename);

在整个列表准备就绪后,应用程序崩溃了。 错误多次重复,并说:

  

在Mac OS X上,您可能正在加载两组Qt二进制文件   同样的过程。检查是否针对正确的Qt编译了所有插件   二进制文件。导出DYLD_PRINT_LIBRARIES = 1并检查只有一组   正在加载二进制文件。 QObject :: moveToThread:当前线程   (0x103339cb0)不是对象的线程(0x10a848670)。无法搬家   目标线程(0x103339cb0)

     

在Mac OS X上,您可能正在加载两组Qt二进制文件   同样的过程。检查是否针对正确的Qt编译了所有插件   二进制文件。导出DYLD_PRINT_LIBRARIES = 1并检查只有一组   正在加载二进制文件。

你有什么想法吗?

感谢您的帮助!

编辑:

如果我跳过图标就没问题了。我也试过去

QListWidgetItem *item = new QListWidgetItem(act_filename);
ui->listWidget->addItem(item);
item->setIcon(QIcon(act_fullname));

并没有任何区别。

编辑2:

我不打电话QObject::moveToThread(QThread*)我甚至不使用线程(故意至少)。

此外,错误似乎出现在循环之后。我已经完成了每次迭代和循环的结束,并在我的“end loop cout msg”之后,我看到了

  

objc [56963]:类QCocoaColorPanelDelegate在两者中实现   /Users/Barnabas/QtSDK/Desktop/Qt/4.8.1/gcc/lib/QtGui.framework/Versions/4/QtGui   和   /Users/Barnabas/Programming/Qt/demo_OpenCV-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Release/demo_OpenCV.app/Contents/MacOS/../Frameworks/QtGui.framework/Versions/4/QtGui。   将使用两者之一。哪一个未定义。

在这里,我也不使用QCocoaColorPanelDelegate。我甚至都不知道它是什么...... :(

但这是我更详细的代码:

boost::filesystem::path p("/path/to/dir");
if(boost::filesystem::is_directory(p))
{
    for(boost::filesystem::directory_iterator it(p); it!=boost::filesystem::directory_iterator(); ++it)
    {
        if(it->path().extension().string()==".png")
        {
            std::cout<< it->path() <<std::endl;
            QString item_name( it->path.stem().c_str() );
            QString screen_file( it->path.c_str() );
            QListWidgetItem *item = new QListWidgetItem(item_name);
            QIcon *icon = new QIcon(screen_file);
            item->setIcon(*icon); // if I comment this one out, everything is fine.
            ui->imageList->addItem(item);
        }
    }
}

我还用一个.png测试了它,图像在列表中正确显示但是崩溃后跟着相同的消息。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案:手动删除了Debug和Release目录 对于那些类似问题没有解决的人,请参阅:this link