1

ここ数時間、QAction でアイコンを表示する際の問題を解決しようとしています。
問題は、アイコンが表示されず、テキストの復号化のみが「Roads」の位置に配置されることです。
私はそれをデバッグしようとしましたが、QPixmapは常に NULL で、ファイルが見つからないようです。


私のコードは次のようになります。

QPixmap icon(":/road.png");
QAction *A1 = new QAction(icon,"Road...", 0);
A1->setIconVisibleInMenu(true);
A1->setVisible(true);
connect(A1, SIGNAL(triggered()), SLOT(triggeredA1()));

この記事を読みました。それによると、次の行を追加してproファイルを変更しました:

RESOURCES = ./res/icons.qrc

src ディレクトリにサブディレクトリ 'res' を作成し、そこにアイコンを配置しました。

-src
  --res
        road.png
        load.gif
        done.gif

これが私のicons.qrcファイルがどのように見えるかです:

<RCC>
    <qresource prefix="/">
        <file>road.png</file>
        <file>done.gif</file>
        <file>load.gif</file>
    </qresource>
</RCC>

このすべての操作の後でもQPixmapはまだNULLです。私は何を間違っていますか?

4

2 に答える 2

1

解決:

私は OS X を使用しており、MacPorts で Qt4 を構築しています。MacPorts が提供するビルドに、なぜか libpng が含まれていません。したがって、解決策は、MacPorts を介して libpng を手動でビルドすることです。

sudo port install libpng

.pro ファイルに次の行を追加して、この lib をプロジェクトに含めます。

LIBS += -lpng

この手順の後、上記のようにプロジェクトで .png ファイルを使用できます。

于 2015-05-27T21:19:50.763 に答える