У меня странная проблема с Tkinter.Итак, у меня есть окно 1000x1000
, и у меня есть несколько ярлыков вокруг окна.Метки были размещены пользователем с помощью функции перетаскивания, и каждая метка была динамически создана с использованием словаря.После того, как позиционирование выполнено, при нажатии на метку вызывается следующая функция (через метод bind
, и каждая метка была доступна через словарь).
def moveNattack(event):
Ycord = window.winfo_pointery()
Xcord = window.winfo_pointerx()
print(Xcord, Ycord)
ex = tk.Label(window, text = 'X', relief = 'raised', background = 'firebrick3', width = 2, height = 1)
if Ycord < 500:
ex.place_forget()
ex.place(x = Xcord, y = Ycord + 20)
Что я пытаюсь сделатьсоздать другую метку с "X" в качестве текста с именем ex
.Если щелкнуть метку выше метки 500 пикселей, я хочу, чтобы ex
располагался на 20 пикселей ниже метки, на которую нажали.
Итак, проблема, с которой я сталкиваюсь, заключается в том, что по какой-то случайной причине ex
располагается примерно на 10-100 пикселей вправо, хотя координаты в функции выше должны располагать ex
ниже нажатой кнопки.этикетка.Помощь будет принята с благодарностью.
Кроме того, здесь приведен словарь, в котором команда list(range(...))
создала переменные, которые будут назначены меткам в другой функции.
troops = {
'playerOne' : {
'gunner' : list(range(4)),
'rifle' : list(range(6)),
'rocket' : list(range(2)),
'machinegun' : list(range(4)),
'tank' : list(range(3))
},
'playerTwo' : {
'gunner' : list(range(4)),
'rifle' : list(range(6)),
'rocket' : list(range(2)),
'machinegun' : list(range(4)),
'tank' : list(range(3))
}
}
И этоЭто картинка моей проблемы:
Пожалуйста, прокомментируйте, если у вас есть вопросы.