qtのウィンドウおよびウィンドウウィジェットの背景パターンの設定
2694 ワード
1.トップウィンドウに背景パターンを設定します.一番上のウィンドウだけでなく、サブウィジェットウィンドウをこのスタイルに設定してもいいです.QPaletteを使うのがオススメです.これはブロ友の文章を参照してください.http://lingshaohuprose.blog.163.com/blog/static/16957978220122201116275/.ここをそのままコピーして説明します.
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
Qtの中に一つの部品を設置して、部品の大きさに従って引張りの背景画像を作ることができます.
イメージwidget.hpp
==================================================================================================================
ヽoo...................................................... IMAGE WIDGET_HPP菗define IMAGE WIDGET_HPP嗳include瑫include クラス ImageWidget : public QWidget{ QuOBJECTpublic: ImageWidget(QWidget) *parent = 0, Qt:WindowFlags f = 0) virtual ~ImageWidget();protected: void resizevent(QResizEvent) *prvate: QImage _イメージendif
====================================================================================================================
imagwidget.cpp
====================================================================================================================
ヽoo.ツ 「imagwidget.hpp」Image Widget:Image Widget(QWidget) *parent、 Qt:WindowFlags f) : QWidget(parent) f){ _イメージ.ロード(「mymuwelcome ound.png」); set AutoFillBackground()ImageWidget::~ImageWidget(){}void ImageWidget:resizEvent(QResizEvent) *イベント QWidget:resizevent; QPalette pal(palette);
//次のラインに注意してください.彼のサイズで引っ張ります~~ pal.setBrush(QPalette:Window、 QBrush(image.scaled(event->size() Qt::IgnoreAspectRatio, Qt::Smooth Trans formation)) set Palette(pal);
http://hi.baidu.com/xchinux/blog/item/329f6509ce5702c83ac76376.html
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
上の実現方式がいいです.一説に値するのは、resizeventイベントマネージャのコード部分はクラスのコンストラクタに入れられません.考えてみると、構造段階では窓はまだ構造していないし、表示もしていないので、ウィンドウの大きさはもちろんです.イベント応答で画像サイズを調整するだけで、背景画像をウィンドウサイズに合わせて変化させることができます.
もう一つは、多くの友達が写真をどうやって読み込むか分かりません.ここは状況が分かれています.
(1)リソースファイルを使うなら、パスはQImageであるべきです. //リソースファイルのパス (2)対応するフォルダの下に置くなら、絶対パスを使ってもいいし、相対パスを使ってもいいです.
2.サブウィンドウウィジェットの背景、前景、枠…QPalletを使用することもできますし、set Style Sheetを使用することもできます.設定が必要な部品が少ない場合は、set Steyle Sheetのコードがよりシンプルになります.多くの部品に同じデザインを設定する必要があれば、QPallateの方がもっと適していると思います.
背景はとてもかっこいいです.あなたも楽しく遊んでください.
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
Qtの中に一つの部品を設置して、部品の大きさに従って引張りの背景画像を作ることができます.
イメージwidget.hpp
==================================================================================================================
ヽoo...................................................... IMAGE WIDGET_HPP菗define IMAGE WIDGET_HPP嗳include
====================================================================================================================
imagwidget.cpp
====================================================================================================================
ヽoo.ツ 「imagwidget.hpp」Image Widget:Image Widget(QWidget) *parent、 Qt:WindowFlags f) : QWidget(parent) f){ _イメージ.ロード(「mymuwelcome ound.png」); set AutoFillBackground()ImageWidget::~ImageWidget(){}void ImageWidget:resizEvent(QResizEvent) *イベント QWidget:resizevent; QPalette pal(palette);
//次のラインに注意してください.彼のサイズで引っ張ります~~ pal.setBrush(QPalette:Window、 QBrush(image.scaled(event->size() Qt::IgnoreAspectRatio, Qt::Smooth Trans formation)) set Palette(pal);
http://hi.baidu.com/xchinux/blog/item/329f6509ce5702c83ac76376.html
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
上の実現方式がいいです.一説に値するのは、resizeventイベントマネージャのコード部分はクラスのコンストラクタに入れられません.考えてみると、構造段階では窓はまだ構造していないし、表示もしていないので、ウィンドウの大きさはもちろんです.イベント応答で画像サイズを調整するだけで、背景画像をウィンドウサイズに合わせて変化させることができます.
もう一つは、多くの友達が写真をどうやって読み込むか分かりません.ここは状況が分かれています.
(1)リソースファイルを使うなら、パスはQImageであるべきです. //リソースファイルのパス (2)対応するフォルダの下に置くなら、絶対パスを使ってもいいし、相対パスを使ってもいいです.
2.サブウィンドウウィジェットの背景、前景、枠…QPalletを使用することもできますし、set Style Sheetを使用することもできます.設定が必要な部品が少ない場合は、set Steyle Sheetのコードがよりシンプルになります.多くの部品に同じデザインを設定する必要があれば、QPallateの方がもっと適していると思います.
背景はとてもかっこいいです.あなたも楽しく遊んでください.