ورود

View Full Version : سوال: ایجاد یک رزولوشن داینامیک با Qml



ravaei
سه شنبه 22 اردیبهشت 1394, 15:58 عصر
درود ...

می خواستم ببینم چه تغییراتی باید تو کد Qml بدم که واسه هر دستگاه رزولوشن رو بر اساس اون تغییر بده ...
مثلا اینجا :


ApplicationWindow {
visible: true
width: 320
height: 480
title: qsTr("Drum Pad")




Rectangle {
id: base
width: 320
height: 480
color: "lightblue"


Rectangle{
id: top
width: 320
height: 20
color: "pink"
}


Rectangle{
id: player
width: 80
height: 20
color: "green"
x: 160
y: 410
radius: 8
}


MouseArea{
id: on_player
width: player.width
height: player.height
x: player.x
y: player.y


onClicked: {
player.color = "red"

}




}


}


}




الان طول و عرض برابر 320 و 480 هستش ولی مسلما هیچ گوشی این رو ساپورت نمی کنه اصلا تابعی واسه گرفتن سایز گوشی هست؟؟

و یه مساله دیگه ... مثلا میخوایم برنامه همیشه به صورت lanscape نشون داده بشه (مثال ساده clash of clans:لبخند:)

returnx
سه شنبه 22 اردیبهشت 1394, 22:26 عصر
در مقاله زیر به طور نسبتا مفصلی در این باره صحبت کرده ، من خودم وقت نکردم کامل و دقیق بخوانم ، اما به شما توصیه می کنم بخوانید:
http://doc.qt.io/qt-5/scalability.html

حامد مصافی
چهارشنبه 23 اردیبهشت 1394, 12:36 عصر
چون شروع برنامه‌ها در اندروید به صورت فول‌اسکرین هست عملا طول و ارتفاع در این مورد نادیده گرفته خواهند شد
برای ست کردن افقی و عمودی بودن باید در فایل AndroidManifest.xml تغییرات رو اعمال کنید

خطی به صورت زیر را

<activity android:launchMode="singleInstance" android:screenOrientation="unspecified" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:configChanges="orientation|uiMode|screenLayout|screenSize|smalles tScreenSize|locale|fontScale|keyboard|keyboardHidd en|navigation" android:label="@string/app_name">
به این حالت تغییر دهید

<activity android:launchMode="singleInstance" android:screenOrientation="landscape" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:configChanges="orientation|uiMode|screenLayout|screenSize|smalles tScreenSize|locale|fontScale|keyboard|keyboardHidd en|navigation" android:label="@string/app_name">


برای گرفتن اطلاعات در مورد صفحه نمایش هم از تایپ Screen (http://doc.qt.io/qt-5/qml-qtquick-window-screen.html) استفاده کنید