我尝试用tkinter建立一个gui,在地图上添加像英雄联盟等游戏的文字。 令人惊讶的是你用tkinter创造这样一个gui有多快,但我遇到了一个我无法单独解决的问题:
点击事件的功能(在画布/地图上创建单词图片):
def sightstone(event):
i = Image.open('Sightstone_item.png')
i = i.resize((10, 10), Image.ANTIALIAS)
img = ImageTk.PhotoImage(i)
sword = tk.Label(panel, image=img, compound=tk.CENTER)
sword.place(x=event.x, y=event.y, width=10, height=10)
sword.image = img
n = len(words) + 1
string = 'sword '
words.update({string + '%d' % n: [(event.x, event.y)]})
dump.update({string + '%d' % n: [sword, img, i]})
print('clicked at', event.x, event.y)
休息以进行设置:
window = tk.Tk()
Canvas = tk.Canvas(window, width=768, height=810)
img = Image.open('srift.jpg')
img = img.resize((768, 810), Image.ANTIALIAS)
mapimg = ImageTk.PhotoImage(img)
panel = tk.Label(window, image=mapimg)
panel.bind("<Control-Button-1>", sightstone)
panel.place(x=0, y=0, relwidth=1, relheight=1)
i = Image.open('Sightstone_item.png')
i = i.resize((10, 10), Image.ANTIALIAS)
img = ImageTk.PhotoImage(i)
sword1 = tk.Label(panel, image=img, compound=tk.CENTER)
sword1.place(x=384, y=405, width=10, height=10)
sword1.image = img
sword2 = tk.Label(panel, image=img, compound=tk.CENTER)
sword2.place(x=405, y=405, width=10, height=10)
sword2.image = img
Canvas.pack()
words = {}; dump = {}; string = ''
Canvas.find_all()
window.mainloop()
请注意,我只创建了sword1和2,以显示我想要的方式。但如果我 ctrl +左键单击以创建另一个单词sword1和2消失。我得到event.x和event.y或单词的坐标是非常重要的,因为我想用它来做一些事情。
答案 0 :(得分:0)
致于回复的joaquin的积分 here! 我改变的是:我创建了一个Canvas并在画布上创建了背景图像,而不是生成标签。
<activity android:name="YourActivityName" >
</activity>
现在一切正常。 = ^)