WxRuby'de uygulamamızı standart görüntülerle süsleyecek birçok öntanımlı diyalog kutusu bulunur. Bu yazıda kullanıcımızdan girdi alabileceğimiz üç diyalog kutusu göreceğiz.
- Mesaj diyaloğu
- Text girişi
- Listeden seçim
Bundan başka daha birçok standart diyalog bulunur. Örneğin , dosya seçici , renk seçici , progress diyalog , font seçici gibi.
Mesaj Bildirileri
Kullanıcıyla yapabileceğimiz en basit iletişim Wx::MessageDialog adındaki basit alarm kutusunu kullanmaktır. MessageDialog kullanarak üzerinde sadece bir mesaj ve OK butonu olan bir kutu veya Yes/No butonları ile cevap alabileceğimiz bir kutu yapabiliriz.
1 dlg = MessageDialog.new nil, "böyle iletişim kurması kolay mı ?", "MessageDialog", YES_NO | ICON_QUESTION
2 result = dlg.show_modal 3 p result 4 dlg.destroy
bu kodun karşılığında şöyle bir diyaloğumuz olur :
MessageDialog nesnesinin tanıtım parametreleri şunlardır :
MessageDialog.new(Window parent, String message,
String caption = "Message box",
Integer style = OK CANCEL,
Point pos = DEFAULT_POSITION)
Burda parent dialogun çağrıldığı penceredir veya bir pencereye bağlı olmasını istemezsek nil değer gireriz. Arkasından mesajımızı string olarak gireriz. "caption" isimli string diyaloğumuzun titlebar'ında görünecek yazıdır, default değeri "Message box". "style" parametresi diyaloğumuzda bulunacak butonları ve ikonları tarif eden bir bitmask'dır. "pos" parametresi de diyaloğumuzun ekranda gösterileceği pozisyonu belirtir bir Wx::Point nesnesidir. "show_modal" ile diyaloğumuz modal olarak açılır yani bu diyalog açıldığında uygulamamızda olan pencerelerde işlem yapmamız diyaloğumuz kapatılana kadar engellenir. Tüm diyaloglarda bu metod ortakdır. "show_modal" metodunun geri dönen değeri diyaloğumuzun sonucunu ifade eden bir integer sayıdır. Bu diyaloğumuzda tıklanan butonun kodu geri döner. Bu "MessageDialog" nesnesi için şu sabitlerden biridir : Wx::ID_YES , Wx::ID_NO , Wx::ID_CANCEL , Wx::ID_OK.
Style bitleri ile diyaloğumuzda bulunacak butonlara karar veririz. Wx::OK , Wx::CANCEL , Wx::YES_NO . Ayrıca bu style bitleri ile diyaloğumuzda hangi ikonun görüneceğini seçeriz. Wx::ICON_ERROR , Wx:ICON_EXCLAMATION , Wx::ICON_INFORMATION , Wx::ICON_QUESTION .
Bir Satırlık Yazı Girdisi
Eğer kullanıcıdan bir tek satır bilgi almak istiyorsak , "TextEntryDialog" kullanırız. Bu nesne bir diyalog penceresi açar ve eğer kullanıcı OK butonunu tıklarsa girilen yazıyı geri döner.
Style bitleri ile diyaloğumuzda bulunacak butonlara karar veririz. Wx::OK , Wx::CANCEL , Wx::YES_NO . Ayrıca bu style bitleri ile diyaloğumuzda hangi ikonun görüneceğini seçeriz. Wx::ICON_ERROR , Wx:ICON_EXCLAMATION , Wx::ICON_INFORMATION , Wx::ICON_QUESTION .
Bir Satırlık Yazı Girdisi
Eğer kullanıcıdan bir tek satır bilgi almak istiyorsak , "TextEntryDialog" kullanırız. Bu nesne bir diyalog penceresi açar ve eğer kullanıcı OK butonunu tıklarsa girilen yazıyı geri döner.
17 dlgq = TextEntryDialog.new nil, "Sevdiğiniz Programlama Dili Nedir ?", "Bir Soru", "Ruby" 18 if dlgq.show_modal == ID_OK 19 response = dlgq.get_value 20 p response + " güzel bir seçim" 21 end 22 dlgq.destroy
Bu kodun karşılığı diyaloğumuz şuna benzer :
Aşağıdaki Listeden Seçiniz
Eğer kullanıcının her aklına geleni yazmasını değilde bizim istediğimiz yanıtlardan birini seçmesini istiyorsak , Wx::SingleChoiceDialog nesnesi kullanırız. Bu nesnenin basit kullanımı şöyledir :
Bu kodun sonucu şu şekil bir diyaloğumuz olur :
Bu günlük bu kadar.
TextEntryDialog nesnesi üretirken girdiğimiz parametreler sırasıyla şunlar : her zaman olduğu gibi parent en başta. Arkasından diyaloğumuzun içinde yer alacak soru cümlemiz string olarak. Bundan sonra diyaloğumuzun etiketinde yer alacak string gelir. En son text girişinde yer alacak default yazı geliyor. Ayrıca default değeri Wx::OK | Wx::CANCEL olan bir style bilgisi vardır. İstersek sadece OK butonu bırakabiliriz. Aynı MessageDialog nesnesi gibi show_modal metodu da tıklanan düğmenin kodunu geri döner. "get_value" metodu textbox'ta yazılmış olan değeri geri döner. Burda sadece deneme için girilen değeri terminale geri yazıyoruz.
Eğer kullanıcının her aklına geleni yazmasını değilde bizim istediğimiz yanıtlardan birini seçmesini istiyorsak , Wx::SingleChoiceDialog nesnesi kullanırız. Bu nesnenin basit kullanımı şöyledir :
24 dlgc = SingleChoiceDialog.new nil, "Kaç Yaşında Evlenmek Daha İyi ?", "Birini Seçin", ["15", "20", "25", "36", "44"] 25 if dlgc.show_modal == ID_OK 26 response = dlgc.get_string_selection 27 p response + " yaş çok erken olur !" 28 end 29 dlgc.destroy
Bu kodun sonucu şu şekil bir diyaloğumuz olur :
Bir öncekinden farklı olarak burda default text değeri yerine bir matris içinde seçenekleri gireriz. Bu diyalogdan dönen değeri iki değişik şekilde alabiliriz : "get_selection" metodu seçilen stringin indexini geri döner , "get_string_selection" ile seçilen stringin kendisini alırız.
Tüm bu kodların hepsini ana penceresi olmayan bir uygulamaya dizdim :1 #!/usr/bin/env ruby 2 # dialoglar.rb kullaıcı ile diyalog pencereleri yardımıyla iletişim 3 4 require 'rubygems' 5 require 'wx' 6 include Wx 7 8 $KCODE = "utf8" #Türkçe karakterler terminalde çıksın 9 10 class MyApp < App 11 def on_init 12 13 dlg = MessageDialog.new nil, "böyle iletişim kurması kolay mı ?", "MessageDialog", YES_NO | ICON_QUESTION 14 result = dlg.show_modal 15 p result 16 dlg.destroy 17 18 dlgq = TextEntryDialog.new nil, "Sevdiğiniz Programlama Dili Nedir ?", "Bir Soru", "Ruby" 19 if dlgq.show_modal == ID_OK 20 response = dlgq.get_value 21 p response + " güzel bir seçim" 22 end 23 dlgq.destroy 24 25 dlgc = SingleChoiceDialog.new nil, "Kaç Yaşında Evlenmek Daha İyi ?", "Birini Seçin", ["15", "20", "25", "36", "44"] 26 if dlgc.show_modal == ID_OK 27 response = dlgc.get_string_selection 28 p response + " yaş çok erken olur !" 29 end 30 dlgc.destroy 31 32 end 33 end 34 35 if __FILE__ == $0 36 my_app = MyApp.new 37 my_app.main_loop 38 end 39
Bu günlük bu kadar.
Hiç yorum yok:
Yorum Gönder