Nasil text ekleyebilirim yardimci olabilir misiniz

kare1kutucuk1=fond.create_rectangle(4*i , 1*j , 5*i , 2*j ,outline='white'  ,fill=dizi1 [0] [0] [0])

soyle bir kod satirim var arkadaslar ve bu benim projemde bir kare sekli olarak gorunuyor ben bu seklin icine text ozelliginde rakam yazdirmak istiyorum yardim ederseniz cok sevinirim simdiden tesekkurler

Merhaba, aşağıdaki kodu bir inceleyin isterseniz.

import tkinter as tk

root = tk.Tk()

canvas = tk.Canvas(root)
canvas.pack()

window = tk.Canvas(canvas, width=50, height=50, bg="red")
window.create_text((25, 25), text="1", anchor="center")

canvas.create_window((0, 0), window=window, anchor="nw")

root.mainloop()
1 Beğeni

Hocam hayirli sabahlar oncelikle tesekkur ederim cevabiniz icin verdiginiz kod bana bir kare veriyor guzel ama benim kodumda fill=dizi1 [0] [0] [0]) fonksiyonu var bu kodu sizin verdiginiz koda entegre edemedim ve soyle birsey denedim ama
kare1kutucuk1 =canvas.create_rectangle(4i , 1j , 5i , 2j ,outline=‘white’,fill=dizi1 [0] [0] [0])
kare1kutucuk1.create_text((25, 25), text=“1”, anchor=“center”)
bu hatayi aldim
kare1kutucuk1.create_text((25, 25), text=“1”, anchor=“center”)
AttributeError: ‘int’ object has no attribute ‘create_text’

kare1kutucuk1 bir canvas nesnesi, canvas'ın kendisi değil bu yüzden böyle bir hata alıyorsunuz.

peki bu konuda bir oneriniz var mi python’a biraz uzagim kusura bakmayin

Ne yapmaya çalıştığınızı anlatırsanız belki daha rahat yardımcı olabilirim.

Hocam soyle ki ben bir rubik kup yaptim ve suan tamamiyla calisir halde kodlarimi ozelden gonderiyim isterseniz cunku baya bir emegim var

Özelden yardım etmemeye çalışıyorum.

tamam o zaman burdan atiyim caniniz sagolsun

def gorunum ():
    
    kare1kutucuk1 =canvas.create_rectangle(4*i , 1*j , 5*i , 2*j ,outline='white',fill=dizi1 [0] [0] [0])
    kare1kutucuk2=canvas.create_rectangle(4*i , 2*j , 5*i , 3*j ,  outline='white' , fill=dizi1 [0] [0] [1])
    kare1kutucuk3=canvas.create_rectangle(4*i , 3*j , 5*i , 4*j ,  outline='white' , fill=dizi1 [0] [0] [2])
    kare1kutucuk4=canvas.create_rectangle(5*i , 1*j , 6*i , 2*j ,  outline='white' , fill=dizi1 [0] [1] [0])
    kare1kutucuk5=canvas.create_rectangle(5*i , 2*j , 6*i , 3*j ,  outline='white' , fill=dizi1 [0] [1] [1])
    kare1kutucuk6=canvas.create_rectangle(5*i , 3*j , 6*i , 4*j ,  outline='white' , fill=dizi1 [0] [1] [2])
    kare1kutucuk7=canvas.create_rectangle(6*i , 1*j , 7*i , 2*j ,  outline='white' , fill=dizi1 [0] [2] [0])
    kare1kutucuk8=canvas.create_rectangle(6*i , 2*j , 7*i , 3*j ,  outline='white' , fill=dizi1 [0] [2] [1])
    kare1kutucuk9=canvas.create_rectangle(6*i , 3*j , 7*i , 4*j ,  outline='white' , fill=dizi1 [0] [2] [2])
    kare2kutucuk1=canvas.create_rectangle(4*i , 7*j , 5*i , 8*j  , outline='white' , fill=dizi1 [1] [0] [0])
    kare2kutucuk2=canvas.create_rectangle(4*i , 8*j , 5*i , 9*j  , outline='white' , fill=dizi1 [1] [0] [1])
    kare2kutucuk3=canvas.create_rectangle(4*i , 9*j , 5*i , 10*j , outline='white' , fill=dizi1 [1] [0] [2])
    kare2kutucuk4=canvas.create_rectangle(5*i , 7*j , 6*i , 8*j  , outline='white' , fill=dizi1 [1] [1] [0])
    kare2kutucuk5=canvas.create_rectangle(5*i , 8*j , 6*i , 9*j  , outline='white' , fill=dizi1 [1] [1] [1])
    kare2kutucuk6=canvas.create_rectangle(5*i , 9*j , 6*i , 10*j , outline='white' , fill=dizi1 [1] [1] [2])
    kare2kutucuk7=canvas.create_rectangle(6*i , 7*j , 7*i , 8*j  , outline='white' , fill=dizi1 [1] [2] [0])
    kare2kutucuk8=canvas.create_rectangle(6*i , 8*j , 7*i , 9*j  , outline='white' , fill=dizi1 [1] [2] [1])
    kare2kutucuk9=canvas.create_rectangle(6*i , 9*j , 7*i , 10*j , outline='white' , fill=dizi1 [1] [2] [2])
    kare3kutucuk1=canvas.create_rectangle(1*i , 4*j , 2*i , 5*j ,  outline='white' , fill=dizi1 [2] [0] [0])
    kare3kutucuk2=canvas.create_rectangle(1*i , 5*j , 2*i , 6*j ,  outline='white' , fill=dizi1 [2] [0] [1])
    kare3kutucuk3=canvas.create_rectangle(1*i , 6*j , 2*i , 7*j ,  outline='white' , fill=dizi1 [2] [0] [2])
    kare3kutucuk4=canvas.create_rectangle(2*i , 4*j , 3*i , 5*j ,  outline='white' , fill=dizi1 [2] [1] [0])
    kare3kutucuk5=canvas.create_rectangle(2*i , 5*j , 3*i , 6*j ,  outline='white' , fill=dizi1 [2] [1] [1])
    kare3kutucuk6=canvas.create_rectangle(2*i , 6*j , 3*i , 7*j ,  outline='white' , fill=dizi1 [2] [1] [2])
    kare3kutucuk7=canvas.create_rectangle(3*i , 4*j , 4*i , 5*j ,  outline='white' , fill=dizi1 [2] [2] [0])
    kare3kutucuk8=canvas.create_rectangle(3*i , 5*j , 4*i , 6*j ,  outline='white' , fill=dizi1 [2] [2] [1])
    kare3kutucuk9=canvas.create_rectangle(3*i , 6*j , 4*i , 7*j ,  outline='white' , fill=dizi1 [2] [2] [2])
    kare4kutucuk1=canvas.create_rectangle(4*i , 4*j , 5*i , 5*j ,  outline='white' , fill=dizi1 [3] [0] [0])
    kare4kutucuk2=canvas.create_rectangle(4*i , 5*j , 5*i , 6*j ,  outline='white' , fill=dizi1 [3] [0] [1])
    kare4kutucuk3=canvas.create_rectangle(4*i , 6*j , 5*i , 7*j ,  outline='white' , fill=dizi1 [3] [0] [2])
    kare4kutucuk4=canvas.create_rectangle(5*i , 4*j , 6*i , 5*j ,  outline='white' , fill=dizi1 [3] [1] [0])
    kare4kutucuk5=canvas.create_rectangle(5*i , 5*j , 6*i , 6*j ,  outline='white' , fill=dizi1 [3] [1] [1])
    kare4kutucuk6=canvas.create_rectangle(5*i , 6*j , 6*i , 7*j ,  outline='white' , fill=dizi1 [3] [1] [2])
    kare4kutucuk7=canvas.create_rectangle(6*i , 4*j , 7*i , 5*j ,  outline='white' , fill=dizi1 [3] [2] [0])
    kare4kutucuk8=canvas.create_rectangle(6*i , 5*j , 7*i , 6*j ,  outline='white' , fill=dizi1 [3] [2] [1])
    kare4kutucuk9=canvas.create_rectangle(6*i , 6*j , 7*i , 7*j ,  outline='white' , fill=dizi1 [3] [2] [2])
    kare5kutucuk1=canvas.create_rectangle(7*i , 4*j , 8*i , 5*j ,  outline='white' , fill=dizi1 [4] [0] [0])
    kare5kutucuk2=canvas.create_rectangle(7*i , 5*j , 8*i , 6*j ,  outline='white' , fill=dizi1 [4] [0] [1])
    kare5kutucuk3=canvas.create_rectangle(7*i , 6*j , 8*i , 7*j ,  outline='white' , fill=dizi1 [4] [0] [2])
    kare5kutucuk4=canvas.create_rectangle(8*i , 4*j , 9*i , 5*j ,  outline='white' , fill=dizi1 [4] [1] [0])
    kare5kutucuk5=canvas.create_rectangle(8*i , 5*j , 9*i , 6*j ,  outline='white' , fill=dizi1 [4] [1] [1])
    kare5kutucuk6=canvas.create_rectangle(8*i , 6*j , 9*i , 7*j ,  outline='white' , fill=dizi1 [4] [1] [2])
    kare5kutucuk7=canvas.create_rectangle(9*i , 4*j , 10*i , 5*j , outline='white' , fill=dizi1 [4] [2] [0])
    kare5kutucuk8=canvas.create_rectangle(9*i , 5*j , 10*i , 6*j , outline='white' , fill=dizi1 [4] [2] [1])
    kare5kutucuk9=canvas.create_rectangle(9*i , 6*j , 10*i , 7*j , outline='white' , fill=dizi1 [4] [2] [2])
    kare6kutucuk1=canvas.create_rectangle(10*i , 4*j , 11*i , 5*j ,outline='white' , fill=dizi1 [5] [0] [0])
    kare6kutucuk2=canvas.create_rectangle(10*i , 5*j , 11*i , 6*j ,outline='white' , fill=dizi1 [5] [0] [1])
    kare6kutucuk3=canvas.create_rectangle(10*i , 6*j , 11*i , 7*j ,outline='white' , fill=dizi1 [5] [0] [2])
    kare6kutucuk4=canvas.create_rectangle(11*i , 4*j , 12*i , 5*j ,outline='white' , fill=dizi1 [5] [1] [0])
    kare6kutucuk5=canvas.create_rectangle(11*i , 5*j , 12*i , 6*j ,outline='white' , fill=dizi1 [5] [1] [1])
    kare6kutucuk6=canvas.create_rectangle(11*i , 6*j , 12*i , 7*j ,outline='white' , fill=dizi1 [5] [1] [2])
    kare6kutucuk7=canvas.create_rectangle(12*i , 4*j , 13*i , 5*j ,outline='white' , fill=dizi1 [5] [2] [0])
    kare6kutucuk8=canvas.create_rectangle(12*i , 5*j , 13*i , 6*j ,outline='white' , fill=dizi1 [5] [2] [1])
    kare6kutucuk9=canvas.create_rectangle(12*i , 6*j , 13*i , 7*j ,outline='white' , fill=dizi1 [5] [2] [2])

bunlar benim rubik kupumun icerdeki kutucuklari


ornek olmasi amaciyla su da fonksiyonum

def btnfnk () :

        gorunum ()
       
def hareket1():
    global dizi1,dizi2
    dizi2=[[[dizi1[3][0][0],dizi1[3][0][1],dizi1[3][0][2]],[dizi1[0][1][0],dizi1[0][1][1],dizi1[0][1][2]],[dizi1[0][2][0],dizi1[0][2][1],dizi1[0][2][2]]], 
         [[dizi1[5][2][2],dizi1[5][2][1],dizi1[5][2][0]],[dizi1[1][1][0],dizi1[1][1][1],dizi1[1][1][2]],[dizi1[1][2][0],dizi1[1][2][1],dizi1[1][2][2]]],
         [[dizi1[2][2][0],dizi1[2][1][0],dizi1[2][0][0]],[dizi1[2][2][1],dizi1[2][1][1],dizi1[2][0][1]],[dizi1[2][2][2],dizi1[2][1][2],dizi1[2][0][2]]],
         [[dizi1[1][0][0],dizi1[1][0][1],dizi1[1][0][2]],[dizi1[3][1][0],dizi1[3][1][1],dizi1[3][1][2]],[dizi1[3][2][0],dizi1[3][2][1],dizi1[3][2][2]]],
         [[dizi1[4][0][0],dizi1[4][0][1],dizi1[4][0][2]],[dizi1[4][1][0],dizi1[4][1][1],dizi1[4][1][2]],[dizi1[4][2][0],dizi1[4][2][1],dizi1[4][2][2]]],
         [[dizi1[5][0][0],dizi1[5][0][1],dizi1[5][0][2]],[dizi1[5][1][0],dizi1[5][1][1],dizi1[5][1][2]],[dizi1[0][0][2],dizi1[0][0][1],dizi1[0][0][0]]]]
    dizi1=dizi2
    
    
btnfnk ()

bu da ornek olmasi amaciyla en distaki yon tuslu butonlarimdan bir tanesi

def Boutons():
     
    Bhareket1 = Button(form, bg= 'black'  , command=hareket1 , image = photo)
    Bhareket1_form = canvas.create_window(x+260, y-10, window=Bhareket1)

Lütfen kodunuzu aşağıdaki linkte anlatıldığı gibi paylaşabilir misiniz?

duzenledim kusura bakmayin daha yeniyim grupta

Bu arada şu an biraz meşgulüm, müsait olunca size dönüş yapacağım.

Tamam tesekkur ederim

Tekrar merhaba,

Kodunuza baktığımda kutucuk oluşturmak için benzer ifadelerin tekrar tekrar yazıldığını gördüm. Bu kutucukları bir for döngüsü kullanarak tanımlayabilirsiniz aslında.

Aşağıda 9 adet kutucuğu ekranın istediğiniz bir bölgesine yerleştirmenizi sağlayan bir fonksiyon göreceksiniz. Buna benzer bir fonksiyon kullanarak, 9’lu kutucukları ekranın istediğiniz yerine yerleştirebilirsiniz.

import tkinter as tk


def kutucuklar_olustur(canvas, satir, sutun, x, y, boyut, outline, fill):
    satir_bosluk = 0
    kutucuk_no = 1
    for i in range(satir):
        sutun_bosluk = 0
        for j in range(sutun):
            canvas.create_rectangle(
                x + boyut * j, 
                y + boyut * i, 
                x + boyut * (j + 1), 
                y + boyut * (i + 1), 
                outline=outline, 
                fill=fill
            )
            canvas.create_text(
                x + sutun_bosluk + boyut / 2 * (j + 1), 
                y + satir_bosluk + boyut / 2 * (i + 1),
                text=kutucuk_no,
                anchor="center"
            )
            kutucuk_no += 1
            sutun_bosluk += boyut / 2
        satir_bosluk += boyut / 2



root = tk.Tk()

canvas = tk.Canvas(root)
canvas.pack()

kutucuklar_olustur(
    canvas=canvas,
    satir=3,
    sutun=3,
    boyut=50,
    x=10,
    y=30,
    outline="black",
    fill="red",  
)

root.mainloop()

Paylaştığım kodu çalıştırdığım zaman aldığım ekran görüntüsü:
Ekran görüntüsü 2021-06-13 14-56-45

kutucuklar_olustur fonksiyonunu kullanarak birden çok 9’lu kutucuk setini oluşturabilir ve gireceğiniz x ve y parametrelerine göre bu kutucuk setini ekranın istediğiniz yerine yerleştirebilirsiniz. satir ve sutun parametrelerine yazacağınız değerler sizin kaç adet kutucuk oluşturmak istediğinizi belirler. boyut parametresi, her bir kare kutucuğun bir yüzeyinin boyutunun ne olacağını belirler.

1 Beğeni

cok sagolun cok tesekkur ederim iyi gunler