Python 3 ve Tkinter
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.
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.
Python2 bana göre daha kolay öğrenilebilir. Onun için Python2.x e devam edilmeli diye düşünüyorum.
@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…
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.
Öğ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.
Öğ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.
“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
@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…
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.
@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…
@istihza,
PySide’a bakabilirsiniz, PyQt varken niye çıktı tam bilmiyorum da (lisans problemi galiba), Nokia’nın ortaklarından birinin ürünü.
@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ş…
Bahsettiğin şekilde olması benim de savunduğum yöntemdir. Uygularsan daha verimli olacağını düşünüyorum.
Ş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
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…
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
@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
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
Ben her ne kadar python 2x.ci de olsam python 3′ün Tkinter ile beraber anlatıcak olması daha heveslendirici olur
bence gayet güzel bir fikir katılıyorum aslında alternatif olarak oyun programcıları için oyun motoru derleride olabilir panda3d gibi
@istihza
katılıyorum
Merhaba,
Pythonu webde nasıl kullanabilirim. Django dışında direkt olarak kodlamaya nasıl başlayabilirim. Yol gösterirseniz sevinirim.
İyi Çalışmalar,
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.
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
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
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.
ben de yakın zamanda python’a başlamayı umuyorum.Python3 için sizin yazılarınızı bekleyelim.
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
“Portable olarak kullanmak” derken tam olarak ne kastettiğinizi anlamadım. PyGTK kurulu olmayan bilgisayarda PyGTK programı çalıştırmak mı demek istediniz?
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.
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
İlgi ve alakanız için Teşekkür ediyorum.
Saygılarımla
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.
Merhaba, bu soruyu istihza.com/forum adresinde sorar mısınız? Orada tartışalım.
merhabalar,
size sorum olacak.Python 3.2.1 tkinter modülü yok. onu nerden indirebilirim acaba??
Teşekkürler…
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
@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.