[解決済み] QMLイメージの表示サイズを調整する
2022-02-07 15:23:34
質問事項
QML ウィンドウに、ネストされた
RowLayout
. 内側の行には、2つの画像があります。ソース
.png
これらの画像のファイルは、(意図的に)かなり大きくなっています。このため
height
プロパティを使って小さくしても、大きく描画されてしまいます。
小さくする方法としては
sourceSize.height:100
の代わりに
height:100
しかし、これは私の望むところではありません。私は、リロードせずに拡大縮小ができるようにしたいのです。
どうすればQMLを修正し、画像に含まれる高さを適用させることができますか?
RowLayout
?
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
ApplicationWindow {
width:600; height:300
visible:true
Rectangle {
color:'red'
anchors { top:header.bottom; bottom:footer.top; left:parent.left; right:parent.right }
}
header:RowLayout {
id:header
spacing:0
height:100; width:parent.width
RowLayout {
id:playcontrol
Layout.minimumWidth:200; Layout.maximumWidth:200; Layout.preferredWidth:200
height:parent.height
Image {
// I really want these to take on the height of their row
source:'qrc:/img/play.png'
width:100; height:100
fillMode:Image.PreserveAspectFit; clip:true
}
Image {
source:'qrc:/img/skip.png'
width:100; height:100
fillMode:Image.PreserveAspectFit; clip:true
}
}
Rectangle {
color:'#80CC00CC'
Layout.minimumWidth:200
Layout.preferredWidth:parent.width*0.7
Layout.fillWidth:true; Layout.fillHeight:true
height:parent.height
}
}
footer:Rectangle { height:100; color:'blue' }
}
解決方法は?
レイアウトを使用する場合は、絶対に
width
または
height
を使用します。
Layout
に付属するプロパティを使用します。レイアウト自体は
width
と
height
というように、設定した内容を効果的にオーバーライドします。
そこで、画像については、以下のように置き換えます。
width:100; height:100
と
Layout.preferredWidth: 100
Layout.preferredHeight: 100
これは文書化されています
こちら
. 具体的には
width
と
height
は最終的なフォールバックとしてのみ使用され、期待したような動作はしません。
あなたのコードには、この現象が起こる場所が他にもあります。
-
playcontrol
セットheight: parent.height
(親の幅と高さを埋めるのは レイアウトのデフォルト動作 ということで、これはいずれにせよ必要ないはずです)。 -
は
Rectangle
の中でplaycontrol
レイアウトもheight: parent.height
.
関連
-
[解決済み] QDateTime::fromStringの使い方は?
-
[解決済み] QAbstractTableModelの内部にデータを設定する方法
-
[解決済み] QVariant::UserType 型の QVariant が期待された型であることを確認するにはどうすればよいですか?
-
[解決済み] Qml タイマーが正しい間隔で起動しない
-
[解決済み] Qtのフォームレイアウト機構を理解する
-
[解決済み] qtnetwork4.dllという正しいファイルが見当たりません。
-
[解決済み] qmake: ''の Qt インストールが見つかりませんでした。
-
Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error: error
-
Qt: (クラス名)::connect()への呼び出しに一致する関数がない エラー概要
-
[解決済み】QLabel: テキストと背景の色を設定する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] QAbstractTableModelの内部にデータを設定する方法
-
[解決済み] QVariant::UserType 型の QVariant が期待された型であることを確認するにはどうすればよいですか?
-
[解決済み] Qtのフォームレイアウト機構を理解する
-
[解決済み] qtnetwork4.dllという正しいファイルが見当たりません。
-
[解決済み] QMLイメージの表示サイズを調整する
-
[解決済み] QTextEditの内容を表示するQTextBrowserを持つにはどうしたらよいですか?
-
Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error: error
-
不完全な型「クラスUi-Widge't」の無効な使用に対する解決策
-
CMakeラーニングサマリー
-
[解決済み] Qtプログラムを終了する正しい方法は?