Yeni Bir Çizim Programı

python
program-tanıtımları
tkinter

#1

Kendimi geliştirmek üzere birkaç ay önce yazdığım çizim programını Github’a koyup başkalarını da bu kodlardan faydalanmasını sağlamak istedim. Aynı zamanda sizinde program hakkındaki görüş ve önerilerinizi öğrenmek istiyorum.
Kodlarım:https://github.com/Tuguberk/Cizim-Programi


#2

2 önerim olabilir:

  • Değişken veya fonksiyon adlarının bazıları Türkçe karakter içeriyor.Türkçe karakter kullanmamaya özen göster.
  • pyqt yi bi incele derim.

Bu arada güzel olmuş, tebrikler. Müsait bir zamamda çalıştıracağım kodları.

Kolay gelsin :blush:


#3

Teşekkür ederim. Türkçe karakten olayına dikkat etmeye çalışıyorum. Pyqt ye gelince, şuan opencv ile uğraşıyorum müsait olduğum bir ara ona da bakacağım.


#4

Ellerinize sağlık, güzel olmuş. Birkaç önerim olabilir:

  1. “Yeni Tuval Oluştur.” tuşuna tıklayınca açılan pencerede varsayılan ayarlar olabilir. O pencereye ne yazılacağı bilinemeyebilir.
  2. Tuval kaydedilebilir.

Kodla ilgili de birkaç önerim var:

  1. self.kalemKalınlığı isimli bir değişken tanımlamışsınız bir yerde. Bunun yerine self.kalem_kalınlığı ismini kullanmalısınız: https://www.python.org/dev/peps/pep-0008/#method-names-and-instance-variables
  2. Oluştur isimli bir metod tanımlamışsınız. oluştur olmalı: https://www.python.org/dev/peps/pep-0008/#method-names-and-instance-variables
  3. self.bilgi1 = tk.Label(self,text="Tuvalin Uzunlugu:").grid(row=0,column=0) Bu çalışmaz. Çünkü grid metodu oluşturulan Label örneğini değil, None döndürür.

@Cihat_Altiparmak, PyQt, Tkinter’dan daha gelişmiş ancak Tkinter’ın da basitlik, kurulum gerekmemesi, lisansının ücretli uygulamalara izin vermesi, vb. avantajları var. PyQt’de yapılabilen her şey Tkinter ile de yapılabilir. Tabii biraz daha fazla uğraşmak gerek. :slight_smile:


#5

Öncelikle teşekkür ederim. “Yeni Tuval Oluştur” kısmına varsayılan ayarlar ekleyeceğim. Tuvalin kaydetmeye de çalıştım ama sanırım tkinter bunu yapamıyor. Bulduğum kaynakları denediğimde çalıştıramamıştım. Değişken ve metodları düzelteceğim. 3. maddeyi de öğrendiğim iyi oldu. Yeniden teşekkür ederim. En yakın zamanda kodları yenileyeceğim.


#6

@ismailarilik hocam, oluştur da olmamalı(olmamalı da değil, ama ben pek tercih etmiyorum), olustur olursa daha iyi olur bana kalırsa :sunglasses:

:+1:

Win de paint vardı. O, üzerine çizilen şeyleri eğer siz kaydetmek isterseniz onu png olarak kaydediyordu.Acaba tkinterde png nasıl düzenlenir, editlenir? bu araştırılırsa belki bir şeyler çıkar.

Kolay gelsin :blush:


#7

sn @ismailarilik bey’in belirttiği gibi, tuval resmi kaydedilebilir. Bunun için aşağıdaki linkten yardım alabilirsiniz.

Program konusunda yorum olarak, Türkçe değişken ismi kullanmanız biraz aykırı* olmuş. Onun dışında, temel elemanları bir sınıf olarak ele almanız, OOP olarak çok iyi.

Ancak, bu elemanları ayrı bir dosya içinde tutarsanız, daha modüler bir program haline gelmiş olur. Örneğin widgets/rectangle.py altındaki modül, dikdörtgen çizimi için gerekli olan sınıfı içersin. Böylece daha modüler ve yönetimi kolay bir program olmuş olur.

Düşüncelerim bunlar :slight_smile: Kolay gelsin…


#8

Başka projelerde söylediğiniz farklı dosya olayını yapacağım. tuval resmini kaydetmeyi de programa eklemeye çalışacağım.


#9

Daha çok uğraşsak da PyQt kadar güzel olmaz. Tkinter in böyle bir sıkıntısı var.


#10

Bence olur. Tk son zamanlarda bu alanda ilerleme kaydetti. Örneğin, ttk buna bir örnek.


#11

Ama ttk veya tix i anlatan hiç kaynak yok


#12

Şurada bir şeyler var: https://docs.python.org/3/library/tk.html
Tabii çoğu durumda Tcl/Tk’nın belgelendirmesine başvurmak gerekiyor. Ki PyQt için de bu durum böyle bildiğim kadarıyla.