2010-12-15 24 views
6

無効なデータが含まれている場合は、QLineEditの横に「警告」アイコンを表示しようとしています。
QStyle::standardIcon(QStyle::SP_MessageBoxWarning)を使って標準のpixmapを取得し、QLabelの中に配置しようとしていましたが、場合によってはこれがうまくいくようです。 Gnomeを実行するとアイコンが正しく表示されますが、KDEで実行している場合はアイコンが表示されません。私は、警告アイコンが単にKDEで使用されるスタイルに含まれていないと仮定します。Qt4で標準警告アイコンを表示

「標準」の警告アイコンをQtに表示するにはどうすればよいですか?あらゆるスタイルにどのアイコンが含まれているかを示すリストがいくつかありますか?警告アイコンを含むスタイルからアイコンを取得するにはどうすればよいですか?

答えて

9

私が前回同様の問題があったとき、私はthis Qt labs discussionが役に立ちました。 QIconthe Freedesktop.org Icon Naming Specificationに基づいてアイコンをロードできるようにするQIcon::fromTheme機能を備えており、現在のテーマに問題のアイコンがない場合に使用するフォールバックアイコンを提供しています。

私がしたことは、フォールバックとして使用するためのいくつかの非常に基本的なアイコンを含めることでした。一般にアイコンはFreedesktopの名前でのみ指定します。これはほぼ常にテーマ一貫性のある外観を与え、人々がアイコンを紛失した場合でもプログラムは機能しました。

警告アイコンに関しては、すべてのテーマに「ダイアログ警告」という名前が付いていなければならないと思っています。それはあなたが探しているものです。

こちらがお役に立てば幸いです。

編集:ああと、あなたが知らない場合には、それはもちろんですがFreedesktop名は(に対応するものの大まかなアイデアを得るために、たとえばでTango icon setを一読することが有用ですTHEME-依存)。

5

Qtはbundle a number of imagesです。これは、自分のコードで使用できるリソースです。これらの画像は、standardIcon()で入手可能な画像のスーパーセットです。ターゲットとするQtのバージョンに特定の画像が含まれているかどうかを確認したい場合があります。

最終結果は以下のようになります。

QPixmap pixmap(":/trolltech/styles/commonstyle/images/up-128.png"); 
// use pixmap as needed 
+0

興味深いです。私はこれが '' QIcon :: fromTheme''にフォールバックを供給するのに非常に役立つと想像できます。 – gspr

関連する問題