1

たくさんQListViewのファイルとそのア​​イコンがあります。QIconProviderWin API 経由でアイコンを取得し、それらをQIconviaQPixmap::fromWinHICON()に変換してから、HICON に戻します。これにより、すべてのアイコンで 200 ミリ秒の遅延が発生します。しかし、最悪なのは QPixmap をバックグラウンド スレッドで使用できないため、UI がフリーズすることです。

そのため、アイコンのフェッチを高速化するために純粋な Win API を使用することにしました。

これは私が持っているコードです:

SHFILEINFO sfi;

HWND hwnd = listView->winId();
HIMAGELIST imageList = (HIMAGELIST) SHGetFileInfo (TEXT ("c:\\"),
    NULL, &sfi, sizeof (sfi), SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
if (!ListView_SetImageList(hwnd, imageList, LVSIL_SMALL))
{
    qDebug() << "FAIL";
}

残念ながら、これはうまくいきません。

不合格

アプリケーション出力で。

これに Win API を使用するにはどうすればよいですか? たぶんQListView、Win APIListViewではなく、他のクラスに変換されているのでしょう... Qt のソースでは見つかりませんでした。

4

0 に答える 0