0

すべての「.png」がプレビューアイコンで一覧表示されるように、ディレクトリを参照してQListWidgetを構築しています。

私のポピュレーションループのコアは次のようになります。

new QListWidgetItem( QIcon(act_fullname), act_filename);

リスト全体の準備ができた直後に、アプリがクラッシュします。エラーは何度も繰り返され、次のように表示されます。

Mac OS Xでは、2セットのQtバイナリを同じプロセスにロードしている可能性があります。すべてのプラグインが正しいQtバイナリに対してコンパイルされていることを確認してください。DYLD_PRINT_LIBRARIES = 1をエクスポートし、1セットのバイナリのみがロードされていることを確認します。QObject :: moveToThread:現在のスレッド(0x103339cb0)はオブジェクトのスレッド(0x10a848670)ではありません。ターゲットスレッド(0x103339cb0)に移動できません

Mac OS Xでは、2セットのQtバイナリを同じプロセスにロードしている可能性があります。すべてのプラグインが正しいQtバイナリに対してコンパイルされていることを確認してください。DYLD_PRINT_LIBRARIES = 1をエクスポートし、1セットのバイナリのみがロードされていることを確認します。

あなたはなにか考えはありますか?

ご協力いただきありがとうございます!

編集:

アイコンをスキップしても問題ありません。私も行ってみました

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

違いはありませんでした。

編集2:

私はQObject::moveToThread(QThread*)スレッドさえ使用しないとは言いません(少なくとも意図的に)。

また、エラーはループの後に発生しているように見えます。私はすべての反復とループの終わりをcout-edし、「endloopcoutmsg」の直後にそれを見る

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。2つのうちの1つが使用されます。どちらが未定義です。

ここでも、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でテストしました。画像はリストに正しく表示されましたが、クラッシュした後、まったく同じメッセージが表示されました。

4

1 に答える 1

0

私はついに解決策を見つけました:デバッグディレクトリとリリースディレクトリを手動で削除しました。
同様の問題がこれで解決されない場合は、このリンクを参照してください。

于 2012-10-18T15:51:45.090 に答える