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