【发布时间】:2017-03-19 00:38:06
【问题描述】:
使用 python Tkinter,我想在单击鼠标键时将文本放置在随机位置。这是我的代码:
from Tkinter import *
import sys
from random import randint
root = Tk()
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x = 10
y = 10
def key(event):
if event.char == 'c':
xloc = randint(0, 100)
yloc = randint(0, 100)
T.mark_set("insert", "%d.%d" % (0, 0))
T.insert('%d.%d' % (xloc, yloc), 'something')
if event.char == 'q':
sys.exit()
frame = Frame(root, width=screen_width, height=screen_height)
frame.bind("<Key>", key)
frame.focus_set()
frame.pack()
T = Text(frame, height=screen_height, width=screen_width, bg="white", fg="blue")
T.mark_set("insert", "%d.%d" % (0, 0))
T.pack()
root.mainloop()
窗口弹出后,按'c'会导致文本插入到前一个文本之后,而不是像预期的那样随机插入。
【问题讨论】:
-
谢谢。会这样做,看看
-
试过了。添加了大约 3000 个空格,并尝试将文本放置在屏幕分辨率范围内的位置。它似乎以某种方式失败,并且文本放置在 3000 个空格之后。使用 mark_insert() 将光标设置为 0,在插入所有空格之后和放置随机文本之前为 0。更新了代码