У меня есть квадрат ярлыков, которые делают шлем. (link to picture)Увеличить на квадрат ярлыков python tkinter
Код для генерации:
colors = {"TWS":"red", "DWS":"pink", "TLS":"light green", "DLS":"light blue", "*":"pink"}
self.boardFrame = Frame(self.root, bd=1, relief=SUNKEN)
self.boardFrame.place(x=50, y=50, width=497, height = 497)
labels = list()
squares = list()
for i in range(16):
for j in range(16):
label = self.board[j][i]
if label in self.extraList:
entry = Frame(self.boardFrame, bd=1, relief=RAISED)
entry.place(x=(i*31), y=(j*31), width=31, height=31)
labels.append(func.Label(entry, text = label,
height = 31, width = 31))
if label in colors.keys():
labels[-1].config(bg=colors[label])
labels[-1].pack()
Я хотел бы сделать это в состоянии увеличить, когда пользователь нажимает на нее. Я слышал, что вы можете использовать что-то вроде canvas
. Я посмотрел на this question, но я этого не понял. Если у меня есть изображение для каждого типа квадрата (что возможно), как я могу эффективно изменять размер каждой метки? Что-то вроде:
def zoom(self, event):
if math.isclose(event.x, self.x, abs_tol=self.boardWidth/2) and \
math.isclose(event.y, self.y, abs_tol=self.boardHeight/2):
self.height += 30
self.width += 30
self.x -= event.x
self.y -= event.y
self.label.config(height=self.height, width=self.width)
self.label.place_configure(x = self.x, y = self.y)
Я не уверен. Любая помощь будет приветствоваться на самом деле. Благодарю.
РЕДАКТИРОВАТЬ: Когда я говорю «увеличение», я имею в виду фактическое увеличение. Например, масштабирование в 2x будет иметь только 1/4 ярлыков, и каждый из них будет в два раза больше.
EDIT: кстати, весь код находится в tiles.py
в this github repo.
Большое вам спасибо! – rassar