Mobile Python Kullanıcı Arayüzü(UI)

PyS60’ın sunduğu kullanıcı arayüzü modülü appuifw dır. Çalışmalarımızda önce diğer python programları gibi önce kullanacağımız modülü import ederiz. Şimdi gelin appuifw modülünün fonksiyonlarına göz atalım:

query
Bu tek satırlık dialogtur. Veri girişi sağlar. Söz dizimi şu şekilde olur:
query(label, type[, initial value ])

Label kısmına isteğinize göre bir yazı girebilirsiniz, type girilecek verinin türüdür bu şunlardan biri olabilir :
“text”, “number”, “date”, “time”, “code”, “query”, “float”

Bir örnek yazalım
appuifw.query(u”Birsey yaz ey muhterem:”, “text”, u”baslangic degeri bu”)
dikkat ettiyseniz baslarinda u bu yazdığınız satırın Unicode olduğunu belirtir. Symbian OS bir çok dilde kullanıldığı için yazı olarak Unicode standart kabul edilir.

note
Bu fonksiyon bir popup mesjı gösterir. Örneğin yükleme tamamlandı penceresi açılır yada mesaj gönderildi diye bir pencere çıkar ya karşınıza işte o işi yapar note.
Söz dizimi “note(text[, type[, global ] ])” şeklindedir. Bir örnek verelim:
appuifw.note(u”Yükleme tamamlandı!”, “info”)
Label kısmına metinimizi yazdık, tip olarakda info, error, conf seçeneklerinden infoyu seçtik. Bunlar seçeneğe göre mesajınızın yanında simge belirmesini sağlıyor.

multi_query
Adından anladığınız üzere bu sefer tek satır değil çoklu satırda veri girişi alıyoruz.
Söz dizimi “multi query(label1, label2)” şeklinde olur. Örnek verelim:
appuifw.multi_query(u”Adınız:”, u”Soyunuz:”) Elime Mobile Python kitabı geçti onun içinde bu konuyla ilgili güzel bir örnek var ona benzer birşey yazalım.


import appuifw
isimler=appuifw.multi_query(u"Adınız:", u"Soyunuz:")
if isimler:
first, last = isimler
appuifw.note(u"Adınız ve soyadınız: " + first + " " + last)
else:
appuifw.note(u"İptal!)

popup_menu
Açılır bir menü oluşturur. Bir listedeki itemleri gösteriri. Söz dizimi şu şekilde olur:
popup_menu(list[, label ])

Bir örnek verelim:


if index == 0:
appuifw.note(u"Python sectiniz")
elif index == 1:
appuifw.note(u"C sectin iyy")
elif index == 2:
appuifw.note(u"Java sectiniz")

Bir listeyi gösterdiğini söylemiştim, bu yüzden popup_menu fonksiyonunu kullanmadan önce secenekler isimli bir liste tanımladım. Ardından bu listeden yapılan seçime göre sonuç veren bir uygulama yazdım.

selection_list
Bunda bir listede arama yapma imkanı vardır. Örneğin telefonun rehberini kullanırken kullandığınız arama bölümü buna benzer. Söz dizimi “appuifw.selection_list(choices, search field)” şeklindedir. Bir örnek verelim:


import appuifw
secenekler = [u"Python", u"C", u"Java"]
index = appuifw.selection_list(secenekler, 1)
if index == 1:
print "Dogru"
elif index != None:
print "Hayırrr " + secenekler[index] + "dogru değil"

Uygulamamızda önce import ettik sonra secenekler isimli bir liste oluşturduk ardından kullanıcının seçecei dile göre bir fonksiyon yazdık. Python bilginiz olduğunu varsayarak bu örnekleri hızlı hızlı geçiyorum, eski blogumda bloggerın yasaklanması ve onu silmeden önce liste neydi tüp neydi ayrıntılı şekilde yazmıştım. Şimdi bu konularla zaman kaybetmeye gerek yok merak eden çeşitli kaynaklardan bilgi edinebilir örneğin örnekler konusunda bana örnek olan Mobile Python kitabı gibi veya şu link size faydaları olacaktır. Biz konumuza devam edelim…

multi_selection_list
Bunda kullanıcı birden fazla seçim yapma imkanına sahiptir seçeneklerin yanında birer kare vardır ve işaretlindiği zaman seçilmiş demektir(hadi canım?) Search_field gibi bir yardımcıya sahiptir default olarak 0 olarka gelir bu parametre eğer listeniz uzunsa bu değeri 1 yaparak kullanıcının daha rahat seçim yapmasını sağlayabilirsiniz. Fonksiyonun söz dizimi:
multi selection list(choices[, style, search_field ]) şeklindedir.
Gelin bir örnek ile bu özelliğede hakim olalım:

import appuifw
renkler = [u”kırmızı”, u”yeşil”, u”mavi”, u”portakal”]
secim = appuifw.multi_selection_list(renkler,’checkbox’,1)

Bir dahaki yazımda mesaj çekmeyi öğrenecez 🙂

Önemli NOT: Arkadaşlar Python kullananlar bilir if ifadesinden sonraki satırda dört birim boşluk bırakıp fonksiyonu yazarsınız her nedesen blogger sürekli bu kodları sola dayıyor. Biliyorum düzeltmek benim görevim ama bazen hepsiyle uğraşamıyorum. Bu yazılar Python bilen kullanıcılar için yazılmıştır. Uygulamalara geçmeden önce mutlaka Python hakkında bilgi edininiz, böylelikle benim yazım sırasında yaptığım hatalar sizide yanlışa sürüklemez.