Geometriya .place()menejeri
Vidjet oynada egallashi kerak bo'lgan aniq joylashuvni.place() boshqarish uchun foydalanishingiz mumkin yoki . Siz ikkita kalit so'z
argumentini va vidjetning yuqori chap burchagi uchun x va y koordinatalarini ko'rsatishingiz kerak. Ikkala va ham matn birliklarida emas, piksellarda o'lchanadi.Framexyxy
Esda tutingki , kelib chiqishi , bu erda xva yikkalasi ham 0oynaning yuqori chap burchagidir Frame. Shunday qilib, yargumentni .place()oynaning yuqori qismidagi piksellar soni va xargumentni oynaning chap chetidagi piksellar soni deb hisoblashingiz mumkin .
Geometriya menejeri qanday ishlashiga misol .place():
Bu kod qanday ishlaydi:
5 va 6-qatorlar piksellarni kengligi va balandligini o'lchaydigan yangi Framevidjetni yaratadi va uni oynaga
o'rnatadi .frame150150.pack()
8 va 9-qatorlar qizil fon bilan yangi Labelchaqiruv yaratadi va uni (0, 0) holatiga qo'ying.label1frame1
11 va 12-qatorlar sariq fon bilan Labelchaqirilgan soniyani yaratadi va uni (75, 75) o'rniga qo'ying.label2frame1
Mana kod ishlab chiqaradigan oyna:
E'tibor bering, agar siz ushbu kodni turli xil shrift o'lchamlari va uslublarini ishlatadigan boshqa operatsion tizimda ishlatsangiz, ikkinchi yorliq oynaning chetida qisman yashirilishi mumkin. Shuning uchun .place()tez-tez ishlatilmaydi. Bunga qo'shimcha ravishda, u ikkita asosiy kamchilikka ega:
Layout bilan boshqarish qiyin bo'lishi mumkin .place(). Bu, ayniqsa, ilovangizda ko'plab vidjetlar bo'lsa, to'g'ri keladi.
Yaratilgan maketlar .place()javob bermaydi. Oyna hajmi o'zgartirilganda ular o'zgarmaydi.
Oʻzaro platformalar grafik interfeysini ishlab chiqishning asosiy muammolaridan biri bu qaysi platformada koʻrilishidan qatʼi nazar, yaxshi koʻrinadigan maketlarni yaratish boʻlib, .place()sezgir va oʻzaro platformali maketlarni yaratish uchun notoʻgʻri tanlovdir.
Bu siz hech qachon foydalanmasligingiz kerak degani emas .place()! Ba'zi hollarda, bu sizga kerak bo'lgan narsa bo'lishi mumkin. Misol uchun, agar siz xarita uchun GUI interfeysini yaratayotgan bo'lsangiz, u holda .place()vidjetlar xaritada bir-biridan to'g'ri masofada joylashtirilishini ta'minlash uchun mukammal tanlov bo'lishi mumkin.
.pack()dan ko'ra yaxshiroq tanlovdir .place(), lekin .pack()ba'zi salbiy tomonlari ham bor. Vidjetlarni joylashtirish chaqirish tartibiga bog'liq .pack(), shuning uchun tartibni boshqaruvchi kodni to'liq tushunmasdan mavjud ilovalarni o'zgartirish qiyin bo'lishi mumkin. Geometriya .grid()menejeri bu masalalarning ko'pini hal qiladi, buni keyingi bo'limda ko'rasiz.
|