[解決済み] QIconをQPixmapに変換する方法
質問
以下のコードがありますが、Qt4のコードに変更する必要があります。
QIcon icon;
QPixmap pixmap = icon.pixmap(); // Qt3 code
Qt3 のコードを Qt4 に置き換えるには、次のように置き換えます。
pixmap()
を、Qt4が提供する以下のメソッドのいずれかに置き換えてください。
QPixmap QIcon::pixmap ( const QSize & size, Mode mode = Normal, State state = Off ) const
QPixmap QIcon::pixmap ( int w, int h, Mode mode = Normal, State state = Off ) const
QPixmap QIcon::pixmap ( int extent, Mode mode = Normal, State state = Off ) const
この
pixmap(void)
. そこで、明示的にサイズを尋ねることなく、このコードを排除できる代替手段を見つける必要があります。
このコードセグメントから私が理解していること。それはアイコンのサイズを取っている。そこで、私はアイコンの大きさを調べようとしました。しかし、私は再びアイコンのサイズを取得するためのメソッドを見つけることができません。
どうすればいいですか?
QIcon
は、サイズの異なる複数の画像を含むことができます。
ジェネリック
icon.pixmap()
は任意すぎる(どのサイズで構築するかは
QPixmap
?).
pixmap()
メソッド
は引き続き使用可能ですが、サイズを指定する必要があります。
サイズがわかっている場合は、そのまま使用することができます。
QPixmap pixmap = icon.pixmap(requiredImageSize);
もしそうでない場合(あなたのケースのように)、いくつかの選択肢があります。まず、指定されたサイズ(またはそれ以下)の画像は
QIcon::actualSize()
メソッドを使用します。
QPixmap pixmap = icon.pixmap(icon.actualSize(QSize(32, 32)));
サポーティング
icon
が16x16, 24x24, 64x64を含んでいる場合、24x24(指定したものより小さい最大の画像)が返されます。
2つ目の方法は、利用可能な最大の画像(幅と高さが常に等しいと仮定)を選択することです。
QIcon::availableSizes()
:
QList<QSize> sizes = icon.availableSizes();
int maximum = sizes[0].width();
for (int i=1; i < sizes.size(); ++i)
maximum = qMax(maximum, sizes[i].width());
QPixmap pixmap = icon.pixmap(QSize(maximum, maximum));
最初の方法で十分大きな値を指定しても、同じ結果になることに注意してください。
QPixmap pixmap = icon.pixmap(icon.actualSize(QSize(1024, 1024)));
もちろん、単純に最初と最後のサイズを選択することもできます。
QPixmap pixmap = icon.pixmap(icon.availableSizes().first());
QPixmap pixmap = icon.pixmap(icon.availableSizes().last());
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] std::string を const char* または char* に変換する方法
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] std::stringのインスタンスを小文字に変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む