Ayarlar sekmesi altındaki kutu ikonuna tıklayarak Paket Yöneticisi açılır.
Paket yöneticisine tıklandığında karşınıza kurulu paketleri görebildiğiniz veya yeni paketler kurabildiğiniz bir pencere çıkar.
Arama kutusuna AppJar yazıp PyPl’dan Paket Bul butonuna tıklayın.
Paket bulunduğunda pencerenin sağ tarafında paketle ilgili bilgileri ve kur butonunu görebilirsiniz.
Kur butonuna tıkladığınızda kurulum başlayacaktır. Kurulum bitene kadar bir süre bekleyiniz.
Kurulum bittiğinde İndirme başarılı yazan bir pencere çıkacaktır.
Paket Kullanıma hazır.
Pencere oluşturmak için AppJar kütüphanesinden gui (Görsel kullanıcı arayüzü) sınıfının içe aktarılması gerek. p = gui() yazarak p adında bir pencere oluşturabiliriz. gui() sınıfına ait go() metodu ise oluşturulan pencereyi başlatır.
Örnek
#appJar kütüphanesinden gui sınıfını içe aktar
from appJar import gui
#Sonra pencere objesini oluştur
= gui()
p
#Son olarak pencereyi başlat
p.go()
Oluşturulan bir pencerenin boyutunu ayarlamak için gui() sınıfına ait setSize() metodu kullanılır. parametre olarak ilk önce pencerenin eni sonra da boyu aralarına virgül(,) konarak girilir.
Örnek
from appJar import gui
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
p.go()
Oluşturulan bir pencerenin başlığını ayarlamak için gui() sınıfına ait setTitle() metodu kullanılır.
Örnek
from appJar import gui
= gui()
p 300,200)
p.setSize(
#Pencerenin başlığını 'Başlık' olarak değiştir
"Başlık")
p.setTitle(
p.go()
Oluşturulan bir pencerenin Arkaplan rengini ayarlamak için gui() sınıfına ait setBg() metodu kullanılır. Parametre olarak temel renklerin isimleri ingilizce olarak girilir.
Örnek
from appJar import gui
= gui()
p 300,200)
p.setSize(
#Pencerenin arka plan rengini yeşil yap
'green')
p.setBg(
p.go()
Girdi araçları tıklayarak, sürükleyerek ya da yazarak yapılan kullanıcı etkilişimmlerini yakalamak için kullanılır. Genelde 3 temel fonksiyon vardır.
Genel olarak önce bu üçünden biri yazılır hemen ardında ise ilgili aracın adı gelir.
Buton eklemek için gui() sınıfına ait addButton() metodu kullanılır. İki parametre alır, önce butonun başlığı girilir ardından butona tıklandığında çağıralacak fonksiyon.
Örnek
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Tıklandı' diye bir mesaj yazdır
print('Tıklandı')
from appJar import gui
= gui()
p 300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
p.go()
Butona 3 defa tıklandığında alınacak olan çıktı.
Metin kutusu eklemek için gui() sınıfına ait addEntry() metodu kullanılır. Metin kutusuna girilen bilgiyi almak için ise getEntry() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Metin' başlıklı metin kutusundaki metni yazdır.
print(p.getEntry('Metin'))
= gui()
p 300,200)
p.setSize(
#'Metin' başlıklı bir metin kutusu oluştur.
'Metin')
p.addEntry(
'Buton', press)
p.addButton( p.go()
Metin kutusuna ‘Pynar’ yazdıktan sonra butona tıklanırsa alınacak çıktı.
Çok metin kutusu eklemek için gui() sınıfına ait addTextArea() metodu kullanılır. Metin kutusuna girilen bilgiyi almak için ise getTextArea() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Metin' başlıklı çok satırlı metin kutusundaki metni yazdır.
print(p.getTextArea('Metin'))
= gui()
p 300,200)
p.setSize(
#'Metin' başlıklı bir çok satırlı metin kutusu oluştur.
'Metin')
p.addTextArea(
'Buton', press)
p.addButton( p.go()
Seçenek Düğmesi eklemek için gui() sınıfına ait addRadioButton() metodu kullanılır. Parametre olarak önce hangi başlıkla ilgii bir seçim olduğu girilir ardından ise seçeneğin adı girilir. Seçenek düğmelerinden seçilen bilgiyi almak için ise getRadioButton() metodu kullanılır. parametre olarak ise hangi başlıkla ilgili seçim isteniyorsa onun başlığı girilir.
from appJar import gui
def press():#Buton tıklanınca çağrılacak olan fonksiyon
print(p.getRadioButton('harf'))#Seçilen düğmeyi çıktı al
= gui()
p 300,200)
p.setSize(
#Seçenek düğmeleri ekleme.
#'Harf' başlıklı A, B, ve C seçenekleri ekle.
'harf', 'A')
p.addRadioButton('harf', 'B')
p.addRadioButton('harf', 'C')
p.addRadioButton(
'Buton', press)
p.addButton( p.go()
Seçim yapılıp butona tıklandıktan sonraki çıktı.
Onay kutusu eklemek için gui() sınıfına ait addCheckBox() metodu kullanılır. Kutucuk işaretli ise True işaretli değil ise False döndürür.
from appJar import gui
def press():#Butona tıklanınca çağrılacak fonksiyon
#Onay başlıklı onay düğmesi şıklıysa 'True', yoksa 'False' yazdır
print(p.getCheckBox('Onay'))
#Pencereyi oluştur
= gui()
p 300,200)
p.setSize(
#'Onay' başlıklı bir onay düğmesi oluştur
'Onay')
p.addCheckBox(
'Buton', press)
p.addButton( p.go()
Kutuyu işaretlemeden butona tıklandığında alınacak çıktı.
Seçenek kutusu eklemek için gui() sınıfına ait addOptionBox() metodu kullanılır.
from appJar import gui
def press():#Buton tıklanınca çağrılacak olan fonksiyon
#'Seçenekler' başlıklı seçenek kutusundaki
#seçilen ögeyi çıktı al
print(p.getOptionBox('Seçenekler'))
= gui()
p 300,200)
p.setSize(
#'Seçenekler' başlıklı bir seçenek kutusu oluştur
#İkinci argümanda kutuda yer alacak değerler bulunmakta
#Bu değerlerden '-' ile başlayıp bitenler ayırma işlevi gördüğünden seçilemez
'Seçenekler', ['- Meyveler -', 'Elma', 'Portakal',
p.addOptionBox('Armut', '- Hayvanlar -', 'Köpek', 'Kedi', 'Tavşan'])
'Buton', press)
p.addButton( p.go()
Kutuyu tıklanınca açılan menüden portakal seçildikten sonra butona basıldığında alınan çıktı.
Spin kutusu eklemek için gui() sınıfına ait addLabelSpinBox() metodu kullanılır. Spin kutusu ok tuşları yardımı ile seçenekler arasında dolaşabileceğiniz bir kutudur. Aynı zamanda ilgili seçeneği Kutuya elle de girebilirsiniz. Eğer girilen seçenek kutuda yoksa kutu boş kalacaktır. Belli bir sayı aralığında seçimler isteniyorsa addLabelSpinBoxRange() metodu kullanılır.
from appJar import gui
def press():#Buton tıklanınca çağrılacak olan fonksiyon
#'Seçenekler' ve 'Numaralar' başlıklı spin
#kutularında seçilen ögelerin çıktısını al
print(p.getSpinBox('Seçenekler'))
print(p.getSpinBox('Numaralar'))
= gui()
p 300,200)
p.setSize(
#'Seçenekler' başlıklı ve 'A','B','C','D' değerleri bulunan Spin kutusu ekle.
'Seçenekler', ['A', 'B', 'C', 'D'])
p.addLabelSpinBox(
#'Numaralar' başlıklı ve içerisinde 1'den 10'a kadar sayılar olan Spin kutusu ekle.
'Numaralar', 1, 10)
p.addLabelSpinBoxRange(
'Buton', press)
p.addButton( p.go()
Liste kutusu eklemek için gui() sınıfına ait addListBox() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Liste' başlıklı liste kutusundaki seçilen ögeyi yazdır.
print(p.getListBox('Liste'))
= gui()
p 300,200)
p.setSize(
#Liste isimli ve 'A,B,C,D' içerikli bir liste kutusu oluştur
'Liste', ['A','B','C','D'])
p.addListBox(
'Buton', press)
p.addButton( p.go()
Çoklu liste kutusu eklemek için gui() sınıfına ait addListBox() metodu kullanılır. Fakat çoklu seçim özelliğini etkinleştirmek için setListBoxMulti() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Liste' başlıklı liste kutusundaki seçilen ögeyi yazdır.
print(p.getListBox('Liste'))
= gui()
p
#Liste isimli ve 'A,B,C,D' içerikli bir liste kutusu oluştur
'Liste', ['A','B','C','D'])
p.addListBox(
#'Liste' başlıklı liste kutusunu çoklu seçimli hale getir.
'Liste', multi = True)
p.setListBoxMulti(
'Buton', press)
p.addButton( p.go()
‘CTRL’ tuşuna basılı tutarak birden fazla seçim yapabilirsiniz.
Çıktı araçları kullanıcıya bilgi göstermek için kullanılır.
Genel olarak önce bu üçünden biri yazılır hemen ardında ise ilgili aracın adı gelir.
Etiket eklemek için gui() sınıfına ait addLabel() metodu kullanılır.
from appJar import gui
= gui()
p 300,200)
p.setSize(
#'Merhaba' başlıklı bir metin ekle.
'Merhaba')
p.addLabel(
p.go()
Çok satırlı metin çıktı kutusu eklemek için gui() sınıfına ait addMessage() metodu kullanılır.
from appJar import gui
= gui()
p 400,300)
p.setSize(
# 'Pynar' başlıklı ve üzerinde uzun bir metin yazılı bir
#çok satırlı metin oluştur.
'Pynar', '''PyNar, Türkiye’nin ilk Tamamen
p.addMessage(Türkçe arayüze sahip Python kod editörüdür.
PyNar Editörü TÜBİTAK Açık Kaynak Yazılımlar Çağrı Programı
“1003 Türkçe Arayüz ve Destek Sistemleri” çağrısı
kapsamında geliştirilmektedir.
PyNar, bir kod editörü olmasının yanı sıra Entegre bir
Chatbot’a sahiptir. Chatbot, makine öğrenmesi destekli olup
kullanıcının hatalarında düzeltme önerileri sunmaktadır.''')
p.go()
Buton ve Metin kutusu kullanarak bir etiketi değiştiren örnek uygulamalı bir kod.
def press():#Buton her tıklandığında çağrılacak olan fonksiyon
#Metinkutusu isimli metin kutusundaki metni 'yazi' değişkenine aktar
= p.getEntry('Metinkutusu')
yazi
#'Etiket' başlıklı etiketteki metni 'yazi' değişkenindeki yazı olarak ayarla
'Etiket', yazi)
p.setLabel(
from appJar import gui
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#Pencerenin başlığını 'Birleşik Örnek' olarak ayarla
'Birleşik Örnek')
p.setTitle(
#Pencereye 'Etiket' başlıklı bir etiket ekle
'Etiket')
p.addLabel(
#Pencereye 'Metinkutusu' başlıklı bir metin kutusu ekle
'Metinkutusu')
p.addEntry(
#Pencereye 'Tıkla' başlıklı bir buton ekle,
#ve bu buton her tıklandığında 'press' fonksiyonunu çağır
'Tıkla', press)
p.addButton(
#Pencereyi başlat
p.go()
Metin kutusuna girilen metin butona tıklandığında etiketi değiştirecektir.
Açılır Pencereler bir etkileşim sonucu ya da bir bilgiyi sunmak için açılan fazladan küçük pencerelerdir.
Mesaj penceresi eklemek için gui() sınıfına ait infoBox() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Pencere' başlıklı ve içinde
#'Merhaba!' yazan bir açılır pencere göster
'Pencere', 'Merhaba!', parent=None)
p.infoBox(
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
Oluşturulan pencere butona tıklandığında ortaya çıkacaktır.
Hata penceresi eklemek için gui() sınıfına ait errorBox() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fon5ksiyon
#'Hata' başlıklı ve içinde
#'Hata!' yazan bir açılır pencere göster
'Hata', 'Hata!', parent=None)
p.errorBox(
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
Uyarı penceresi eklemek için gui() sınıfına ait warningBox() metodu kullanılır.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Uyarı' başlıklı ve içinde
#'Uyarı!' yazan bir açılır pencere göster
'Uyarı', 'Uyarı!', parent=None)
p.warningBox(
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
Soru penceresi eklemek için gui() sınıfına ait questionBox() metodu kullanılır. questionBox() metodu seçim yapıldıktan sonra bir boolean değeri döndürür.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Soru' başlıklı ve içinde
#'Mesaj' yazan bir açılır pencere göster
#Ve basılan butonu bool değişkenine aktar(Evet->True, Hayır->False)
bool = p.questionBox('Soru', 'Mesaj', parent=None)
#bool değişkenini yazdır
print(bool)
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
’Evet’i seçtikten sonra alınan çıktı.
Onay penceresi eklemek için gui() sınıfına ait okBox() metodu kullanılır. okBox() metodu seçim yapıldıktan sonra bir boolean değeri döndürür.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Onay' başlıklı ve içinde
#'Mesaj' yazan bir açılır pencere göster
#Ve basılan butonu bool değişkenine aktar(Tamam->True, İptal->False)
bool = p.okBox('Onay', 'Mesaj', parent=None)
#bool değişkenini yazdır
print(bool)
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
’Tamam’ı seçtikten sonra alınan çıktı.
Yeniden Dene penceresi eklemek için gui() sınıfına ait retryBox() metodu kullanılır. retryBox() metodu seçim yapıldıktan sonra bir boolean değeri döndürür.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#'Yeniden dene' başlıklı ve içinde
#'Mesaj' yazan bir açılır pencere göster
#Ve basılan butonu bool değişkenine aktar(Yeniden dene->True, İptal->False)
bool = p.retryBox('Yeniden dene', 'Mesaj', parent=None)
#bool değişkenini yazdır
print(bool)
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
’Yeniden dene’yi seçtikten sonra alınan çıktı.
Metin Kutusu penceresi eklemek için gui() sınıfına ait stringBox() metodu kullanılır. stringBox() metodu içine yazılan metni string olarak döndürür.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#Metin penceresi başlıklı ve içinde
#'Mesaj' yazan bir açılır pencere göster
#Ve pencereye yazılan metni 'metin' değişkenine aktar
= p.stringBox('Metin penceresi', 'Mesaj', parent=None)
metin #metin değişkenini yazdır
print(metin)
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
Metin kutusunun içine Pynar yazıp onayladıktan sonra alınan çıktı.
Sayı Kutusu penceresi eklemek için gui() sınıfına ait integerBox() metodu kullanılır. integerBox() metodu içine yazılan değeri integer olarak döndürür. Eğer mesaj kutusuna tam sayı bir değer yazılmazsa hata verecektir.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#Sayı penceresi başlıklı ve içinde
#'Mesaj' yazan bir açılır pencere göster
#Ve pencereye yazılan sayıyı 'sayi' değişkenine aktar
= p.integerBox('Sayı penceresi', 'Mesaj', parent=None)
sayi #metin değişkenini yazdır
print(sayi)
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
Sayı kutusunun içine 123 yazıp onayladıktan sonra alınan çıktı.
Eğer bir metin yazılırsa aşağıdaki gibi hata verecektir.
Ondalıklı Sayı Kutusu penceresi eklemek için gui() sınıfına ait floatBox() metodu kullanılır. floatBox() metodu içine yazılan değeri float olarak döndürür.
from appJar import gui
def press():#Butona tıklandığı zaman çağrılacak fonksiyon
#Sayı penceresi başlıklı ve içinde
#'Mesaj' yazan bir açılır pencere göster
#Ve pencereye yazılan sayıyı 'sayi' değişkenine aktar
= p.floatBox('Sayı penceresi', 'Mesaj', parent=None)
sayi #metin değişkenini yazdır
print(sayi)
#Pencereyi oluştur
= gui()
p
#Pencerenin en,boy uzunluklarını 300,200 olarak ayarla
300,200)
p.setSize(
#'Buton' başlıklı bir buton ekle ve
#Bu butona her tıklandığında 'press' fonksiyonunu çalıştır
'Buton', press)
p.addButton(
#Pencereyi başlat
p.go()
Sayı kutusunun içine 15.7596 yazıp onayladıktan sonra alınan çıktı.