Modül grafik

grafik.py dosyası CS Bridge eğitmenleri Chris Piech, Lisa Yan ve Nick Troccoli tarafından Python'un grafik kütüphanesi TkInter'ın üzerine hazırlanmış bir arayüzdür. CS 101 Eğitmenleri fonksiyonların Türkçe açıklamalarını eklemiştir. Bu sayfada grafik.py dosyasının bize sunduğu tüm fonksiyonları görebilirsiniz.

Classes(Sınıflar)

class Canvas (width=754, height=492)

Canvas, grafiksel objelerle işlem yapmayı kolaylaştırmak için Python'ın thinkter kütüphanesindeki Canvas objesi üzerine kurulmuş basitleştirilmiş bir arayüzdür. Canvas grafiksel objeleri yaratmak, modifiye etmek ve silmek için çeşitli fonksiyonlara sahiptir. Ayrıca kendisi ve üzerinde barındırdığı grafiksel objeler hakkında bilgi almamızı sağlayan fonksiyonları da mevcuttur. Canvas 'thinkter.Canvas' ın bir alt sınıfı olduğu için, gerektiğinde thinkter fonksiyonları da Canvas'tan erişilebilir.

Canvas yaratırken, opsiyonel olarak genişlik ve uzunluğunu belirtilebilir. Eğer genişlik ve uzunluk bilgisi sağlanmazsa canvas varsayılan boyutlarda yaratılır.

Args

width
yaratılacak Canvas'ın genişliği (eğer belirtilmemişse, Canvas.DEFAULT_WIDTH yani varsayılan genişlik kullanılır)
height
yaratılacak Canvas'ın uzunluğu (eğer belirtilmemişse, Canvas.DEFAULT_HEIGHT yani varsayılan uzunluk kullanılır)

Ancestors

  • tkinter.Canvas
  • tkinter.Widget
  • tkinter.BaseWidget
  • tkinter.Misc
  • tkinter.Pack
  • tkinter.Place
  • tkinter.Grid
  • tkinter.XView
  • tkinter.YView

Class variables

var BOTTOM

Canvas'ın farklı bölgelerine etkileşim araçları eklemeyi sağlayan yönler. BOTTOM pencerenin alt tarafı için kullanılır.

var COLORS

CanvasColors canvasda kullanabileceğimiz tüm renkleri içeren bir enum sınıfıdır.

var DEFAULT_HEIGHT

Canvas'ın varsayılan uzunluğu 492 pixeldir.

var DEFAULT_TITLE

Varsayılan olarak Canvas penceresi açıldığında başlık kısmında 'Canvas' başlığı gösterilir.

var DEFAULT_WIDTH

Canvas'ın varsayılan genişliği 754 pixeldir.

var LEFT

Canvas'ın farklı bölgelerine etkileşim araçları eklemeyi sağlayan yönler. LEFT pencerenin sol tarafı için kullanılır.

var RIGHT

Canvas'ın farklı bölgelerine etkileşim araçları eklemeyi sağlayan yönler. RIGHT pencerenin sağ tarafı için kullanılır.

var TOP

Canvas'ın farklı bölgelerine etkileşim araçları eklememizi sağlayan yönler. LEFT pencerenin sol tarafı için kullanılır.

Methods

def create_button(self, title, location, **kwargs)

Canvas'a verilen başlıkla belirtilen lokasyona bir buton ekler. Butonlar canvas'ın üst ve alt kısımlarında soldan sağa, sol ve sağ kısımlarında üstten alta eklenir.

Args

title
buton üzerinde gösterilecek başlık. Diğer buton isimleri içerisinde benzersiz olmalıdır.
location
canvas üzerinde butonu eklemek istediğimiz bölge (Canvas.TOP/LEFT/BOTTOM/RIGHT)
kwargs
diğer thinkter keyword argümanları

Returns

belirtilen pozisyona eklenen butona ait bir referans

def create_image(self, x, y, file_path, **kwargs)

Belirtilen dosyadan, canvas'ta belirtilen pozisyonda bir resim yaratır. Resmin boyutu yüklenen resim dosyası ile aynı olacaktır.

Args

x
canvas üzerinde resmin sol köşesini yerleştirmek istediğiniz pozisyonun x koordinatı
y
canvas üzerinde resmin sol köşesini yerleştirmek istediğiniz pozisyonun y koordinatı
file_path
canvasa eklemek istediğiniz resim dosyasının yerini belirten path stringi
kwargs
diğer thinkter keyword argümanları

Returns

verilen resmi belirtilen pozisyonda gösteren grafiksel resim objesi.

def create_image_with_size(self, x, y, width, height, file_path, **kwargs)

Belirtilen dosyayı kullanarak, canvas'ta verilen pozisyonda verilen genişlik ve uzunlukta bir resim yaratır.

Args

x
canvas üzerinde resmin sol köşesini yerleştirmek istediğiniz pozisyonun x koordinatı
y
canvas üzerinde resmin sol köşesini yerleştirmek istediğiniz pozisyonun y koordinatı
file_path
canvasa eklemek istediğiniz resim dosyasının yerini belirten path stringi
width
resmin olmasını istediğiniz genişliği
height
resmin olmasını istediğiniz uzunluğu
kwargs
diğer thinkter keyword argümanları

Returns

verilen resmi belirtilen pozisyonda verilen boyutlarda gösteren grafiksel resim objesi.

def create_line(self, x1, y1, x2, y2, *args, **kwargs)

Canvas'ta verilen bir noktayla diğer bir nokta arasında çizgi grafiksel objesi yaratır ve döndürür. Çizgi siyah anahatla çizilir.

Args

x1
çizginin başlangıç noktasının x koordinatı
y1
çizginin başlangıç noktasının y koordinatı
x2
çizginin bitiş noktasının x koordinatı
y2
çizginin bitiş noktasının y koordinatı
args
opsiyonel olarak çizgideki veya şekildeki herhangi bir noktanın koordinatlarını belirtebilirsiniz.
kwargs
diğer thinkter keyword argümanları

Returns

verilen iki nokta arasında çizilmiş grafiksel çizgi objesi

def create_oval(self, x1, y1, x2, y2, **kwargs)

Canvas'ta sol üst köşesi verilen ilk koordinatta, sağ alt köşesi de verilen ikinci koordinatta yer alan sınırlayıcı kutu içerisine sığan en büyük oval grafik objesini yaratır ve döndürür. Oval canvasa içi boş bir şekilde siyah bir anahatla çizdirilir.

Args

x1
sınırlayıcı kutunun sol üst köşesinin x koordinatı
y1
sınırlayıcı kutunun sol üst köşesinin y koordinatı
x2
sınırlayıcı kutunun sağ alt köşesinin x koordinatı
y2
sınırlayıcı kutunun sağ alt köşesinin y koordinatı
kwargs
diğer thinkter keyword argümanları

Returns

verilen pozisyona çizilmiş grafiksel oval objesi

def create_rectangle(self, x1, y1, x2, y2, *args, **kwargs)

Canvas'ta sol üst köşesi verilen birinci koordinatta ve sağ alt köşesi verilen ikinci koordinatta olan bir dikdörtgen grafiksel objesi yaratır ve döndürür. Rectangle doldurulmamış bir şekilde siyah anahatla çizilir.

Args

x1
dikdörtgenin sol üst köşesinin x koordinatı
y1
dikdörtgenin sol üst köşesinin y koordinatı
x2
dikdörtgenin sağ alt köşesinin x koordinatı
y2
dikdörtgenin sol alt köşesinin y koordinatı
kwargs
diğer thinkter keyword argümanları

Returns

verilen pozisyona çizilmiş grafiksel dikdörtgen objesi.

def create_text(self, x, y, text, **kwargs)

Verilen text ile canvas'ta verilen pozisyonda bir text objesi yaratır ve döndürür. Belirtilen x ve y koordinatlarına textin merkezini yerleştirir. Text 13 punto boyutunda yaratılır.

Args

x
textin merkezinin olmasını istediğimiz yerin x koordinatı
y
textin merkezinin olmasını istediğimiz yerin y koordinatı
text
canvas'ta verilen pozisyonda gösterilmesi gereken text
kwargs
diğer thinkter keyword argümanları

Returns

verilen texti verilen pozisyonda gösteren grafiksel text objesi.

def create_text_field(self, label, location, **kwargs)

Canvas'ta verilen pozisyona bir text field etiketi ve text field objesi ekler. Etkileşim araçları canvas'ın üst ve alt kısmında soldan sağa doğru eklenirken, sol ve sağ kısmında yukarıdan aşağıya eklenir. Canvas'ın text field objeleri kayıtlarına oluşturduğu text field objesini de ekler.

Args

label
text field objesinin yanında gösterilecek oaln text, aynı zamanda text field objesinin adı. Diğer text field objesi isimleri içerisinde benzersiz olmalıdır.
location
canvas üzerinde text field etiketini ve objesini eklemek istediğimiz bölge (Canvas.TOP/BOTTOM/LEFT/RIGHT)
kwargs
text field objeleri için diğer thinkter keyword argümanları

Returns

verilen pozisyona eklenen text field objesine ait bir referans

def delete(self, obj)

Belirtilen grafiksel objeyi canvas'tan siler.

Args

obj
canvas'tan silmek istediğimiz obje
def delete_all(self)

Canvas'tan tüm objeleri siler.

def find_all(self)

Canvas üzerindeki grafiksel objelerin bir listesini döndürür.

Returns

canvas üzerindeki tüm grafiksel objelerin bir listesi

def find_element_at(self, x, y)

Bu koordinatlarla çakışan en üstteki grafiksel objeyi bulur.

Args

x
o noktadaki elemanı bulmak istediğimiz noktanın x koordinatı
y
o noktadaki elemanı bulmak istediğimiz noktanın y koordinatı

Returns

bu koordinatlarda en üstteki grafiksel obje (eğer böyle bir obje yoksa None)

def find_overlapping(self, x1, y1, x2, y2)

Verilen sınırlayıcı kutu ile kesişen grafiksel objelerin bir listesini döndürür.

Args

x1
sınırlayıcı kutunun sol üst köşesinin x koordinatı
y1
sınırlayıcı kutunun sol üst köşesinin y koordinatı
x2
sınırlayıcı kutunun sağ alt köşesinin x koordinatı
y2
sınırlayıcı kutunun sağ alt köşesinin y koordinatı

Returns

canvas üzerinde verilen sınırlayıcı kutu ile kesişen grafiksel objelerin bir listesi

def get_canvas_background_color(self)

Canvas'ın arka plan renginin adını almamızı sağlar.

Returns

canvas'ın arka plan renginin adı (string formatında)

def get_canvas_height(self)

Canvas'ın uzunluğunu almamızı sağlar.

Returns

canvas'ın şu anki uzunluğu

def get_canvas_width(self)

Canvas'ın genişliğini almamızı sağlar.

Returns

canvas'ın şu anki genişliği

def get_fill_color(self, obj)

Verilen grafiksel objenin dolgu rengini almamızı sağlar. Resim objeleri gibi içi doldurulamayan objelerin dolgu rengini almak için kullanılamaz. thinkter.TclError hatası verir.

Args

obj
dolgu rengini öğrenmek istediğimiz obje

Returns

Objenin dolgu rengi, string formatında. Eğer bu boş bir stringse, objenin içi henüz doldurulmamış demektir.

def get_height(self, obj)

Verilen grafiksel objenin yüksekliğini döndürür.

Args

obj
yüksekliğini öğrenmek istediğimiz obje

Returns

verilen grafiksel objenin yüksekliği

def get_left_x(self, obj)

Verilen grafiksel objenin sol üst köşesinin x koordinatını döndürür.

Args

obj
sol üst köşesinin x koordinatını almak istediğimiz obje

Returns

verilen objenin sol üst köşesinin x koordinatı

def get_mouse_x(self)

Farenin canvas üzerindeki konumunun x koordinatını verir.

Returns

farenin canvas üzerindeki konumunun x koordinatı

def get_mouse_y(self)

Farenin canvas üzerindeki konumunun y koordinatını verir.

Returns

farenin canvas üzerindeki konumunun y koordinatı

def get_new_button_clicks(self)

Bu fonksiyonun veya herhangi bir buton tıklanması işleyicisinin en son çağrılışından beri tıklanan butonların bir listesini döndürür.

Returns

bu fonksiyonun veya herhangi bir buton tıklanması işleyicisinin en son çağrılışından beri tıklanan butonların bir listesi. Listenin her elemanı o sırada tıklanmış olan butonun adıdır. Örneğin, clicks = canvas.get_new_button_clicked() print(click[0])

def get_new_key_presses(self)

Bu fonksiyonun veya herhangi bir klavye tuşu işleyicisinin en son çağrılışından beri basılan tuşların bir listesini döndürür.

Returns

bu fonksiyonun veya herhangi bir klavye tuşu işleyicisinin en son çağrılışından beri basılan tuşların bir listesi. Bu listenin herbir elemenaı, basılan tuş için keysym adlı bir özelliğe sahiptir. Örneğin, presses = canvas.get_new_key_presses() print(presses[0].keysym)

def get_new_mouse_clicks(self)

Bu fonksiyonun veya herhangi bir fare işleyicisinin en son çağrılışından beri gerçekleşen fare tıklanmalarının bir listesini döndürür.

Returns

bu fonksiyonun veya herhangi bir fare işleyicisinin en son çağrılışından beri gerçekleşen fare tıklanmaları. Her tıklanma farenin tıkladığı lokasyonun x ve y koordinatlarını içerir, örneğin clicks = canvas.get_new_mouse_clicks(); print(clicks[0].x)

def get_outline_color(self, obj)

Verilen grafiksel objenin anahat rengini almamıza yarar. Resim ve text objeleri gibi anahattı olmayan grafiksel objelerle kullanılamaz. thinker.TclError hatası verir.

Args

obj
anahat rengini almak istediğimiz obje

Returns

verilen objenin anahat rengi, string formatında. Eğer bu string boşsa, objenin anahattı yok demektir.

def get_random_color(self)

Rastgele seçilmiş bir renk döndürür.

Returns

Rastgele seçilmiş bir renk, string formatında.

def get_text(self, obj)

Verilen text objesine ait texti almamızı sağlar. Text objesi olmayan grafiksel objelerle kullanılamaz.

Args

obj
textini almak istediğimiz text objesi

Returns

grafiksel obje üzerinde şu an gösterilmekte olan text

def get_text_field_text(self, text_field_name)

Verilen isimdeki text field objesinin güncel içeriğini döndürür.

Args

text_field_name
yaratılmış text field objesinin adı

Returns

verilen isimdeki text field objesinin güncel içeriği, veya bu isimde bir text field yoksa None.

def get_top_y(self, obj)

Verilen grafiksel objenin sol üst köşesinin y koordinatını döndürür.

Args

obj
sol üst köşesinin y koordinatını almak istediğimiz obje

Returns

verilen objenin sol üst köşesinin y koordinatı

def get_width(self, obj)

Verilen grafiksel objenin genişliğini döndürür

Args

obj
genişliğini öğrenmek istediğimiz obje

Returns

verilen grafiksel objenin genişliği.

def is_hidden(self, obj)

Verilen grafiksel objenin canvas'ta görünmez veya görünür olduğunu öğrenmemize yarar.

Args

obj
durumunu öğrenmek istediğimiz grafiksel obje

Returns

eğer grafiksel obje görünmez ise True, diğer türlü False.

def lower_behind(self, obj, behind)

İlk objeyi canvas'ta z ekseninde ikinci objenin arkasına yerleştirir. Diğer bir deyişle, ilk obje direkt olarak ikinci objenin ve ikinci objenin önündeki tüm objelerin arkasında görünürken, ikinci objenin arkasında olan objelerin önünde görünür.

Args

obj
ikinci objenin önüne konulacak obje
behind
ilk obje direkt arkasına konulacak olan obje
def lower_to_back(self, obj)

Verilen objeyi canvas'taki diğer tüm objelerin arkasına koyar.

Args

obj
canvas'taki diğer tüm objelerin arkasına konulacak obje
def mouse_is_on_canvas(self)

Farenin şu an canvas üzerinde olup olmadığını döndürür. Returns whether or not the mouse is currently on the canvas.

Returns

eğer fare canvas üzerindeyse True, aksi halde False.

def move(self, obj, dx, dy)

Verilen grafiksel objeyi x ve y eksenlerinde belirtilen miktarlarda taşır.

Args

obj
taşımak istediğimiz obje
dx
objeyi x ekseninde taşımak istediğimiz miktar
dy
objeyi y ekseninde taşımak istediğimiz miktar
def move_to(self, obj, new_x, new_y)

Canvas.moveto(). ile aynı işlevi görür.

def moveto(self, obj, x='', y='')

Verilen grafiksel objeyi belirtilen koordinatlara taşır, objenin sol üst köşesinin koordinatları verilen koordinata gelecek şekilde obje canvas'a yerleştirilir.

Args

obj
taşımak istediğimiz obje
x
objenin sol üst köşesinin yeni x koordinatı
y
objenin sol üst köşesinin yeni y koordinatı
def raise_in_front_of(self, obj, above)

İlk objeyi canvas'ta z ekseninde ikinci objenin önüne yerleştirir. Diğer bir deyişle, ilk obje direkt olarak ikinci objenin ve ikinci objenin arkasındaki tüm objelerin önünde görünürken, ikinci objenin önünde olan tüm objelerin arkasında görünür.

Args

obj
ikinci objenin önüne konulacak obje
above
ilk objenin önüne konulacağı obje
def raise_to_front(self, obj)

Verilen objeyi canvas'taki diğer tüm objelerin önüne koyar.

Args

obj
canvas'taki tüm objelerin önüne konulacak obje
def set_canvas_background_color(self, color)

Canvas'ın arka planını color stringine karşılık gelen renge boyar.

Args

color
canvas'ın arka planını boyamak istediğimiz rengin adı (string).
def set_canvas_size(self, width, height)

Canvas'ı ve onu içeren pencereyi verilen genişlik ve uzunlukta olacak şekilde yeniden boyutlandırır.

Args

width
canvas ve onu içeren pencerenin yeni genişliği
height
canvas ve onu içeren pencerenin yeni uzunluğu
def set_canvas_title(self, title)

Canvas penceresinin başlık kısmındaki texti verilen text ile değiştirir.

Args

title
canvas penceresinin başlık kısmında gösterilecek yeni başlık
def set_color(self, obj, color)

Verilen grafiksel objenin dolgu rengini ve anahat rengini değiştirir. Eğer obje dolgu veya anahatta sahip değilse, renk değiştirme işlemi göz ardı edilir.

Args

obj
rengini değiştirmek istediğimiz obje
color
dolgu ve anahattın olmasını istediğimiz rengin adı, string formatında. Eğer boş string verilirse,

obje dolgusu ve anahattı olmayacak şekilde ayarlanır.

def set_fill_color(self, obj, fill_color)

Verilen grafiksel objenin dolgu rengini değiştirmemizi sağlar. Image objeleri gibi doldurulamayan grafiksel objelerin rengini değiştirmek için kullanılamaz. thinkter.TclError hatası verir.

Args

obj
dolgu rengini değiştirmek istediğimiz obje
fill_color
objenin yeni dolgu renginin adı, string formatında. Eğer bu string boşsa

obje dolgusuz olacak şekilde ayarlanır.

def set_font(self, obj, font, size)

Verilen text objesi tarafından gösterilen textin yazı stilini ve boyutunu belirler. Text objesi olmayan grafiksel objelerle kullanılamaz.

Args

obj
yazı stilini ve boyutunu belirlemek istediğimiz text objesi
font
yazı stilinin adı, string
size
yazının boyutu
def set_hidden(self, obj, hidden)

Verilen grafiksel objenin görünürlüğünü canvas üzerinde değiştirmemize yarar.

Args

obj
canvas üzerinde görünürlüğünü değiştirmek istediğimiz obje.
hidden
eğer obje görünmez yapılacaksa True, eğer obje görünür yapılacaksa False.
def set_on_button_clicked(self, callback)

Her butona tıklandığında verilen fonksiyonun çağrılmasını sağlar. Eğer set_on_button_clicked fonksiyonu birden çok kez çağrılırsa, en son çağrılışında verilen fonksiyon butona her tıklandığında çağrılır.

Args

callback
butona her tıklandığında çağrılacak fonksiyon. Bu fonksiyon 1 parametre almalı:

tıklanan butonun adı. Örneğin, func(button_name). Eğer bu parametre None ise, butona tıklandığında hiçbir fonksiyon çağrılmaz.

def set_on_key_pressed(self, callback)

Her klavyeye basıldığında verilen fonksiyonun çağrılmasını sağlar. Eğer set_on_key_pressed fonksiyonu birden çok kez çağrılırsa, en son çağrılışında verilen fonksiyon klavyeye basıldığında çağrılır.

Args

callback
klavyeye her basıldığında çağrılacak fonksiyon. Bu fonksiyon 1 parametre almalı:

klavyede basılan tuşun adı(a tuşu için 'a', b tuşu için 'b', etc.). Örneğin, func(key_char). Eğer bu parametre None ise, klavyeye basıldığında hiçbir fonksiyon çağrılmaz.

def set_on_mouse_pressed(self, callback)

Fareye her basıldığında verilen fonksiyonun çağrılmasını sağlar. Eğer set_on_mouse_pressed fonksiyonu birden çok kez çağrılırsa, en son çağrılışında verilen fonksiyon fareye basıldığında çağrılır.

Args

callback
fareye her basıldığında çağrılacak fonksiyon. Bu fonksiyon 2 parametre almalı:

farenin basıldığı noktanın (sırasıyla) x ve y koordinatları. Örneğin, func(x, y). Eğer bu parametre None ise, fareye basıldığında hiçbir fonksiyon çağrılmaz.

def set_on_mouse_released(self, callback)

Fare her serbest bırakıldığında verilen fonksiyonun çağrılmasını sağlar. Eğer set_on_mouse_released fonksiyonu birden çok kez çağrılırsa, en son çağrılışında verilen fonksiyon fare serbest bırakıldığında çağrılır.

Args

callback
fare her serbest bırakıldığında çağrılacak fonksiyon. Bu fonksiyon 2 parametre almalı:

farenin serbest bırakıldığı noktanın (sırasıyla) x ve y koordinatları. Örneğin, func(x, y). Eğer bu parametre None ise, fare serbest bırakıldığında hiçbir fonksiyon çağrılmaz.

def set_outline_color(self, obj, outline_color)

Verilen grafik objesinin anahat rengini değiştirmemize yarar. Resim ve text objeleri gibi anahattı olmayan objelerle birlikte kullanılamaz. thinkter.TclError hatası verir.

Args

obj
anahat rengini değiştirmek istediğimiz obje
outline_color
objenin anahattının olmasını istediğimiz renk, string formatında. Eğer boş bir string

verilirse obje anahattı olmayacak şekilde ayarlanır.

def set_outline_width(self, obj, width)

Verilen grafik objesinin anahattının kalınlığını değiştirir. Anahattı olmayan resim veya text objeleriyle birlikte kullanılamaz.

Args

obj
anahattının kalınlığını değiştirmek istediğimiz obje
width
anahattın yeni genişliği
def set_size(self, obj, width, height)

Verilen grafiksel objenin genişlik ve uzunluğunu değiştirmemize yarar. Resim objelerinin boyutunu değiştirmek için kullanılamaz.

Args

obj
boyutlarını değiştirmek istediğimiz obje
width
objenin yeni genişliği
height
objenin yeni uzunluğu
def set_text(self, obj, text)

Verilen text objesine ait texti değiştirmemize yarar. Text objesi olmayan grafiksel objelerle kullanılamaz.

Args

obj
textini değiştirmek istediğimiz text objesi
text
grafiksel objenin göstermesini istediğimiz yeni text
def wait_for_click(self)

Fareye tıklanana kadar bekler, tıklama gerçekleştiğinde sonlanır.