ana sayfa > istihza.com, Python > Python 3 ve Tkinter

Python 3 ve Tkinter

Cuma, 27 Ağu 2010

Bildiğiniz gibi, sitemizde devam eden bir anketimiz var. Bu ankette sorduğumuz soru şu:  “Acaba istihza.com’da Python 2.x’e mi yoksa Python 3.x’e mi ağırlık verilmeli?”.

Şu anda ankette Python 3.x önde gidiyor ve Python 2.x’e karşı arayı da gittikçe açıyor… Eğer Python 2.x’çiler son anda bir hamle yapmazsa anketin galibi Python 3.x olacakmış gibi duruyor… :)

Yukarıdaki sebepten ötürü, yakın bir zamanda artık istihza.com‘da Python 3.x konularına ağırlık vereceğim. Yalnız benim burada şöyle bir düşüncem var:

Hepinizin takdir edeceği gibi, günümüzde artık yazılan programlarda arayüz çok önemli bir olgu. Kullanıcılar genellikle konsol üzerinden çalışan, arayüzsüz uygulamalara dudak büküyorlar.  Bu nedenle, Python 3.x’i daha en başından itibaren Tkinter arayüz takımı ile bütünleşik bir şekilde anlatmayı planlıyorum.  Yani programlama konusunda hiç bir bilgisi olmayan bir kimse, Python 3.x’e daha ilk başladığı anda tkinter modülünü içe aktarmayı ve bu modülü kullanmayı öğrenecek. Böylece bir yandan Python’ı öğrenirken öte yandan da Tkinter’le arayüz geliştirmeyi kavramış olacak.

Dediğim gibi, bu düşünce henüz tasarı aşamasında. Şimdilik sadece beyin jimnastiği yapıyorum. Bu süreçte istihza.com kullanıcılarının da fikrini almak isterim. Böylece bu düşüncenin artı ve eksi yönlerini beraberce ortaya koyma imkanı elde ederiz.

istihza.com, Python

  1. Cuma, 27 Ağu 2010 zamanında 12:35 | #1

    bence çokta güzel olur. Şöyle bir öneride olabilir. Python3 ile ilgili temel anlatımlar bittikten sonra bir anket yapılıp bu ankette bir kaç tane modul listeleyebiliriz. Buradan seçilen moduller derslere eklenebilinir. Bu şekilde insanların en çok ihtiyaç duyduğu modulleri görmüş ve daha fazla insanın yararlanmasını sağlayabiliriz diye düşünüyorum.

  2. beratalp
    Cuma, 27 Ağu 2010 zamanında 12:52 | #2

    Python2 bana göre daha kolay öğrenilebilir. Onun için Python2.x e devam edilmeli diye düşünüyorum.

  3. Cuma, 27 Ağu 2010 zamanında 13:02 | #3

    @beratalp, Python 2′ye mi yoksa 3′e mi ağırlık vereceğimizi anket sonucu belirleyecek. Şu anda 3.x isteyenler çoğunlukta gibi… :)

    @ozan, tıpkı Python 2.x bölümünde olduğu gibi Python 3.x’te de ana konu anlatımlarından bağımsız bir “Modül Dizini” bölümü yer alacak. Orada elimden geldiğince çok sayıda modülü belgelendirmeye çalışacağım. Yani ihtiyaca bakmadan olabildiğince çok modülü istihza.com’a dahil edeceğiz… :)

  4. Cuma, 27 Ağu 2010 zamanında 16:25 | #4

    Arayüz mevzuunu PyQt, PySide veya PyGTK ile halletmek isteyenler için Tkinter öğrenmenin Türkçe kaynaktan Python öğrenmenin getirdiği dayatmadan başka birşey olmayacağını düşünüyorum.

  5. Cuma, 27 Ağu 2010 zamanında 16:46 | #5

    Öğrenme psikolojisi açısından en önemli şey, öğrenen kişiye “bir şey başardığı hissini” verebilmektir. Eğer öğrenci belli bir sürecin ardından hala öğrendiklerini nerede kullanacağı konusunda emin olamıyorsa, motivasyonunu kolayca kaybeder. Özellikle programlama eğitiminde bu durum çok önemli. Öğrenciye çok uzun süre soyut ve teknik bilgiler vermeye devam ettiğiniz zaman öğrenci ilgisini kaybediyor. O yüzden ben istihza.com’daki belgeleri olabildiğince örneklerle desteklemeye çalışıyorum.

    Tkinter, arayüz takımları içinde en kolay ve en sade olanı. Belki en iyisi ve güzeli değil, ama kolaylığı sayesinde öğrencinin kendine güvenini getirme konusunda birebir. Python programlama dilini yeni öğrenen biri açısından, siyah ekrana “Merhaba Dünya” yazdırmaktansa grafik bir arayüz içinde “Merhaba Dünya” yazısını görmek herhalde çok daha cesaret verici olacaktır.

    Ben şahsen, Python’un resmi arayüz takımı olan Tkinter’i herkesin en azından fikir sahibi olacak kadar bilmesi gerektiğini düşünüyorum. Tkinter’i bilmek, öteki arayüz takımlarına geçişe hem bir gerekçe hem de bir kolaylık sağlayacaktır.

    Ama dediğim gibi, günlük girdisinde bahsettiğim şey tamamen bir fikir jimnastiğinden ibaret. Üstelik uygulaması da aslında o kadar kolay değil. O yüzden biz burada sadece dostlar arasında fikir alışverişi yapıyoruz… Asla bir dayatma söz konusu olmayacak. :)

  6. hakan
    Cuma, 27 Ağu 2010 zamanında 17:53 | #6

    Öğrencinin motivasyonunu öğrendikleri şeyi nerede kullanacağını bilmemekten çok çalışacağı sayfa sayısı etkiler bence :) Bence python 3 ile tkinter yine ayrı ayrı olsun.Hem ikisinin birleştirilmesi şuan ki python 3 belgesinin yeniden yazılması demek oluyor ki bence zaman kaybı olur.

  7. Cuma, 27 Ağu 2010 zamanında 19:58 | #7

    :) Python 3 belgeleri zaten sıkı bir yeniden düzenleme sürecinden geçecek. Python 3 çok hızlı gelişen bir sürüm.

  8. Cuma, 27 Ağu 2010 zamanında 20:26 | #8

    “Hepinizin takdir edeceği gibi, günümüzde artık yazılan programlarda arayüz çok önemli bir olgu. Kullanıcılar genellikle konsol üzerinden çalışan, arayüzsüz uygulamalara dudak büküyorlar.”

    Onları bana yönlendir… :)

    R.I.P Python-2.x

  9. Cuma, 27 Ağu 2010 zamanında 20:49 | #9

    @purak, yazıyı ilk yazarken, “kullanıcılar konsol üzerinden çalışan, arayüzsüz uygulamalara dudak büküyorlar,” yazmıştım. Sonra sen aklıma geldin. Oraya “genellikle” diye ekledim… :)

  10. Cuma, 27 Ağu 2010 zamanında 23:29 | #10

    Bence python 3 ile yola devam edilmeli. Sitedeki var olan dosyaların bir çoğu zaten python 2 için. Bunlar bence python 2 ye başlamak, öğrenmek isteyenler için yeterde artar. Üstelik pdfler birde pırıl pırıl kitap var. Python2 için dahada fazlasını isteyenler nette daha birçok belgeye ulaşabilirler. Bence python 3 ve tkinter modülü ile yola devam edilmeli. Ama PyQt nin böyle bir kaynak niteliğindeki bir sitede olmaması da çok üzücü. Son kez toplayarak söyleyeyim öncelikle Python3 ve Tkinter ardından da PyQt ile ilgili çalışmaların gelmesini istiyorum.

  11. Cumartesi, 28 Ağu 2010 zamanında 00:30 | #11

    @turgutreisfb, anketin gidişatına bakılırsa yola Python 3′le devam edeceğiz. Ancak tabii ki 2.x bölümü de tamamen rafa kalkmayacak.

    PyQt’ye gelince… Ben nedense şu PyQt’ye bir türlü ısınamadım. Hatta KDE kullandığım zamanlarda bile bu arayüz takımı hoşuma gitmezdi…

  12. Cumartesi, 28 Ağu 2010 zamanında 20:37 | #12

    @istihza,
    PySide’a bakabilirsiniz, PyQt varken niye çıktı tam bilmiyorum da (lisans problemi galiba), Nokia’nın ortaklarından birinin ürünü.

  13. Cumartesi, 28 Ağu 2010 zamanında 20:50 | #13

    @Utku Aydın, eğer durum sonradan değişmediyse, PyQT ile ticari uygulama geliştirebilmek için lisans ücreti ödemen gerekiyordu. Bildiğim kadarıyla PySide’ın çıkış nedeni bu lisans ücreti zorunluluğunu ortadan kaldırmak.Sitesinde, PySide’ın henüz ciddi projelerde kullanılacak kadar kararlı olmadığı söylenmiş…

  14. Mehmet YILMAZ
    Cumartesi, 28 Ağu 2010 zamanında 22:30 | #14

    Bahsettiğin şekilde olması benim de savunduğum yöntemdir. Uygularsan daha verimli olacağını düşünüyorum.

  15. Turgay
    Cumartesi, 28 Ağu 2010 zamanında 23:36 | #15

    Şu an tek ciddi python kaynağı http://www.istihza.com olduğuna göre kararı ona göre vermelisin :)
    Ne yazarsan EyvAllah. Arayüz için iki kere EyvAllah :) )

  16. Pazar, 29 Ağu 2010 zamanında 09:12 | #16

    Dediğim gibi, bu düşünce henüz sadece tasarı aşamasında. Bu yöntemin avantajları kadar dezavantajları da olacaktır. İyi düşünüp doğru karar vermek lazım…

  17. Pazar, 29 Ağu 2010 zamanında 14:12 | #17

    Tkinter ile bir arada işlenirse şöyle olacaktır bana göre.

    Bir yandan for’u if’i anlatırken bir yandan da Tk() yi Frame()’yi de anlatacaksınız böylece bir konu 2 sayfa sürüyorsa ikiye katlanacak. Programlamaya yeni başlayan biri de bunu okumaya çalıştığında sıkılacaktır(uzun yazıları okumama gibi bir alışkanlık hepimizde vardır sanırım). Ayrıca Tk nin yüzünü direkt gören kişi bunu beğenmeyip “Python da nebiçim bir dil şu guiye bak” diye bilir. Tabii bunu anlatırken diğer gui modüllerinden görüntüler örnekler verilirse olumlu olabilir. Şahsen Tk ancak Windows da iyi gözüküyor :)

  18. Pazar, 29 Ağu 2010 zamanında 15:52 | #18

    @Melen, uzun yazı okumaktan sıkılan, programlamayı da biraz zor öğrenir… istihza.com’da 1000 sayfanın üzerinde dokuman var zaten… Sadece 2.x bölümü 400 sayfadan fazla yer tutuyor. Dolayısıyla istihza.com zaten yeterince uzun :)

    Bu arada Python 2.7 ile birlikte ttk da artık Python’ın bir parçası. Dolayısıyla Tkinter uygulamaları artık eskisi gibi korkunç görünmüyor. http://docs.python.org/py3k/library/tkinter.ttk.html

  19. çetin
    Pazar, 29 Ağu 2010 zamanında 20:44 | #19

    bencede çok güzel bir fikir kendimden biliyorum windows ekranında çıkan “bu senin ilk programın ” haber kutucuğunu gördükten sonra bütün gece yatmamış sabaha kadar belki 30 defa aynı scripti değiştirip çalıştırmıştım

    yani kısacası pythonu öğrenmek isteyenlerin motivasyonunu ,öğrenme isteğini arttıracaktır

  20. Onur
    Pazartesi, 30 Ağu 2010 zamanında 03:05 | #20

    Ben her ne kadar python 2x.ci de olsam python 3′ün Tkinter ile beraber anlatıcak olması daha heveslendirici olur

  21. izzet can karakuş
    Cumartesi, 04 Eyl 2010 zamanında 11:20 | #21

    bence gayet güzel bir fikir katılıyorum aslında alternatif olarak oyun programcıları için oyun motoru derleride olabilir panda3d gibi

  22. izzet can karakuş
    Cumartesi, 04 Eyl 2010 zamanında 11:22 | #22

    @istihza
    katılıyorum

  23. hasan
    Cumartesi, 04 Eyl 2010 zamanında 13:20 | #23

    Merhaba,
    Pythonu webde nasıl kullanabilirim. Django dışında direkt olarak kodlamaya nasıl başlayabilirim. Yol gösterirseniz sevinirim.

    İyi Çalışmalar,

  24. Pazar, 19 Eyl 2010 zamanında 19:08 | #24

    Python 3′e ağırlık verilmesini dilerim. Python 2′de ki Türkçe karakter sorunlarından bıktım usandım, Python3′te birçok şeyin daha açık ve net olduğunu düşünüyorum ve öğrenmeye 3′ten başlamanın daha yararlı olacağını düşünüyorum.

  25. talat
    Cuma, 29 Eki 2010 zamanında 13:30 | #25

    python yazarı da zannedersem keyfi olarak python 2 yi bırakıpta birsürü zahmete girip python 3′ü çıkarmak istememiştir.bunun bir nedeni olmalı buda bence python 2 nin bazı konularda ki yetersizliği olabilir. C ve C++
    ın da gelişme ve standartlaşması büyük olasılıkla bu süreçten geçmiştir.
    ben bir dil öğreneceksem o dilin çok kararlı ve sağlam olmasını isterim
    bu da ancak gelişim ile olur ve bu nedenle ben python 3 diyorum

  26. samiselman
    Perşembe, 11 Kas 2010 zamanında 16:49 | #26

    Ben windows7 kullanıyorum Python 2.7 de Tkinter mdülünü çalışıyor. ancak
    Python 3.1 ide Tkinter modülü çalışmıyor 3.1 de kullanılmıyormu yoksa ben bir hata mı yapıyorum.
    Bilgi verirseniz sevinirim Teşekkürler
    Eğer Tkinter Python 3.1 de de çalışıyorsa 3.1 sürümüne ağırlık vermeniz ddaha güzel olur.
    selamlar

  27. Perşembe, 11 Kas 2010 zamanında 16:58 | #27

    Python 3′te tkinter modülünün adı değişti. Artık bu modülün adı “Tkinter” değil, “tkinter”. Dolayısıyla bu modülü “from tkinter import *” şeklinde içe aktarabilirsiniz.

  28. Pazar, 19 Ara 2010 zamanında 13:11 | #28

    ben de yakın zamanda python’a başlamayı umuyorum.Python3 için sizin yazılarınızı bekleyelim.

  29. MUZAFFER
    Cuma, 05 Ağu 2011 zamanında 09:06 | #29

    Python2 ve 3 arasında yapılacak tercihler arasında yapılan yorumlarınd dışında benim arz dile getirmek istediğim bir durum var.
    Tabi Sayın İstihza’ya hitaben diyorum.
    Python’u portable olarak çalışırken birde GTK arayüzünü ve PyGtK Kütüphanesini de portable olarak nasıl kullanabiliriz.
    Bunu gündeme getiren olmamış gibi sanırım.

    Ayrıca buradaki yazılanlara bende fikrimi ilave etmek istiyorum.Ben derimki her zaman ilk modelden başlanır.Sonra yeni çıkan modeller satın alınır.Tabi gündemde hala ilk model geçerliliğini sürdürmekte ise ilk model kıymetini sürdürür demektir.

    Yukarıdaki soruma bir yanıt alabilirsem memnun olurum.

    Saygılarımla

  30. Cuma, 05 Ağu 2011 zamanında 09:43 | #30

    “Portable olarak kullanmak” derken tam olarak ne kastettiğinizi anlamadım. PyGTK kurulu olmayan bilgisayarda PyGTK programı çalıştırmak mı demek istediniz?

  31. MUZAFFER
    Cuma, 05 Ağu 2011 zamanında 10:01 | #31

    Ben Portable Python 2.7.2 versionunu kullanıyorum. Usb bellek üzerinden
    editöründe kodlamaları çalıştırırken, Gtk ve PyGTK arayüzlerini kullanmayı düşündüm.Yani herhangi bir Pcde bunlar kurulu olmasın fakat ben Usb bellekten Portabel olarak bu arayüzleride kullanabileyim.

  32. Cuma, 05 Ağu 2011 zamanında 10:20 | #32

    Sanırım bu isteğinizi Portable Python’ın geliştiricilerine iletmeniz gerekiyor. Böylece onlar da diğer paketlerle beraber PyGTK’yi de Portable Python’a dahil edebilir. http://groups.google.com/group/portablepython?pli=1

    Mesela şurada birkaç paket isteği bildiren olmuş: http://groups.google.com/group/portablepython/browse_thread/thread/b9bd3dd8c1d0e5c6

  33. MUZAFFER
    Cuma, 05 Ağu 2011 zamanında 13:24 | #33

    İlgi ve alakanız için Teşekkür ediyorum.

    Saygılarımla

  34. Muzaffer
    Pazar, 07 Ağu 2011 zamanında 17:51 | #34

    Sayın İstihza,

    dugme = Button(text=”TAMAM”, command = pencere.quit

    bu satırda pencere.quit komutu ile bende pencere kapanmıyor.
    Sözkonusu pencere kapanıyormuş gibi görünsede ekranda kilitlenip kalıyor.
    Zorlama ile kapatmak zorunda kalıyorum.
    Ayrıca quit komutunu farklı bir şekilde entegre etmekmi gerekiyor.

  35. Salı, 09 Ağu 2011 zamanında 22:36 | #35

    Merhaba, bu soruyu istihza.com/forum adresinde sorar mısınız? Orada tartışalım.

  36. veli
    Cuma, 19 Ağu 2011 zamanında 14:14 | #36

    merhabalar,
    size sorum olacak.Python 3.2.1 tkinter modülü yok. onu nerden indirebilirim acaba??
    Teşekkürler…

  37. Miraç
    Pazar, 13 Kas 2011 zamanında 20:47 | #37

    Bence arayüzle başlamak size yeni acemi ve sabırsız takipçiler kazandırabilir ama kaliteden ödün vermiş olursunuz. İyice .Net’e benzer. Kullanıcı 2 buton koyar ama aslında dilin özünü öğrenemez.

    Şuan iyi anlatan C# kitaplarında bile 500-550 sayfa konsol ile anlatılıyor.

    Bence sizde önce dilin özünü, kıvrak yönlerini her şeyden önce kendisini öğretebilecek makaleler yazmalısınız. Tuple, Lambda, Process nedir bilmeyen bir insan Tkinter bilse ne olur ?

    Arayüz programlama için ise Tkinter yerine PyGTK, PySide veya PyQT daha iyi bir tercih olabilir.

    İyi çalışmalar

  38. Pazartesi, 14 Kas 2011 zamanında 09:04 | #38

    @Miraç, dilin özünü, kıvrak yönlerini öğretecek makaleleri zaten yazıyorum. Benim kastettiğim, belgeleri Tkinter üzerinden anlatmak değil. Bahsettiğim yöntemde kullanıcı Tkinter’le biraz daha erken tanışmış olacak. Python’ın ana yönlerini ihmal etmeyeceğiz.

  1. şimdilik geri bağlantı yok