Форум сайта python.su
Добрый всем день.
Подскажите, пожалуйста: Создаю в tkinter функцию которую затем вызываю в цикле для рисования группы квадратов и проставления в них значения:
from tkinter import * tk = Tk() canv = Canvas(tk, width = 800, height = 600, bg = "lightblue") canv.pack() def checkered(width_r, height_r, x_r, y_r, cor_x, cor_y, cont): canv.create_rectangle(width_r, height_r, x_r, y_r) canv.create_text(cor_x, cor_y, text=cont) for g in range(15): num = 30 * g cor_x = 18 * g print (checkered(30, 30, num, 0, cor_x, 10, g)) tk.mainloop()
Офлайн
Простите. Не совсем понял, зачем это нужно :)
Может лучше построить группу canvas необходимого размера и в каждый из них внести число?
Будет ли что-то дальше происходить с этими квадратами - числами или они остануться статичными?
В принципе, можно высчитать место для цифры. Просто пытаюсь понять, действительно ли это нужно. Решение очень сомнительное :)
P.S. Хочу помочь, но нужно понять в чем…
Отредактировано 4kpt (Авг. 25, 2013 01:31:23)
Офлайн
4kpt
Простите. Не совсем понял, зачем это нужно :)Может лучше построить группу canvas необходимого размера и в каждый из них внести число?Будет ли что-то дальше происходить с этими квадратами - числами или они остануться статичными?В принципе, можно высчитать место для цифры. Просто пытаюсь понять, действительно ли это нужно. Решение очень сомнительное :)P.S. Хочу помочь, но нужно понять в чем…
Офлайн
KarnavalМое мнение. Не верно Вы видите :)
Решение проблемы, я вижу в высчитывании отступа от левого внутреннего края квадрата, но не знаю можно ли такое в tkinter делать.
Офлайн
4kptэмм.. кажется я начинаю понимать. Т.е. можно создать не один canvas и располагать на нём объекты, а создать множество клеток, где каждая клетка отдельный canvas?
Офлайн
KarnavalЯ воль, майн фюрер :)
эмм.. кажется я начинаю понимать. Т.е. можно создать не один canvas и располагать на нём объекты, а создать множество клеток, где каждая клетка отдельный canvas?
Отредактировано 4kpt (Авг. 25, 2013 17:36:20)
Офлайн
4kptПока не надо, Вы и так очень помогли =) Попробую поковыряться и делать наверное буду как вы и советовали - кнопками.
Офлайн
Не забудьте на кнопках поменять свойства relief и bd :)
P.S. Пишите, если что…
Офлайн
можно так
from tkinter import * tk = Tk() canv = Canvas(tk, width = 1024, height = 900, bg = "lightblue") canv.pack() SIZE_X = 50 SIZE_Y = 16 for x in range(20): for y in range(20): numx = SIZE_X * x numy = SIZE_Y * y canv.create_rectangle(numx, numy, numx+SIZE_X, numy+SIZE_Y) canv.create_text(numx+SIZE_X/2 , numy+SIZE_Y/2, text="%s-%s"%(x,y)) tk.mainloop()
Офлайн