繁体   English   中英

如何在屏幕上的任意位置使用Tkinter.Text显示文本

[英]How to display text using Tkinter.Text at a random place on screen

使用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”键将文本插入到前一个文本之后,而不是按预期的随机位置插入。

尝试使用画布。 这与您当前的实现非常相似。

from Tkinter import *
from random import randint

root = Tk()

def key(event):
    print "pressed", repr(event.char)

    if event.char == 'c':
        xloc = randint(0, 100)
        yloc = randint(0, 100)
        canvas.create_text(xloc, yloc, text='something')

canvas = Canvas(width=100, height=100, bg='white')
canvas.focus_set()
canvas.bind("<Key>", key)
canvas.pack(expand=YES, fill=BOTH)
root.mainloop()

我推荐这样的东西

    from tkinter import *
    import random

    Text(text="put your text here".grid(row=random.randrange(0,9),column=random.randrange(0,9),columnspan=2)

此代码只是将文本窗口小部件随机放置在10 * 10的窗口中。 它应该很容易绑定到鼠标单击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM