[英]How do I make a tkinter entry widget?
This is my code: 这是我的代码:
import random
from tkinter import *
root=Tk()
a=Canvas(root, width=1000, height=1000)
a.pack()
e = Entry(root)
paralist = []
x=random.randint(1,10)
file = open("groupproject.txt")
line = file.readline()
for line in file:
paralist.append(line.replace("\n", ""));
a.create_text(500,50, text = "Typing Fun", width = 700, font = "Verdana", fill = "purple")
a.create_text(500,300, text = paralist[x], width = 700, font = "Times", fill = "purple")
#master = Tk()
#a = Entry(master)
#a.pack()
#a.focus_set()
#def callback():
# print (a.get())
root.mainloop()
The commented section is supposed to print an entry widget underneath a paragraph but instead it gives an error IndexError: list index out of range
for line a.create_text(500,300, text = paralist[x], width = 700, font = "Times", fill = "purple")
. 带注释的部分应该在段落下打印一个条目小部件,但会出现错误
IndexError: list index out of range
a.create_text(500,300, text = paralist[x], width = 700, font = "Times", fill = "purple")
。 If I use e
instead of a
it works but opens the entry widget in a separate window. 如果我使用
e
,而不是a
它的工作原理,但在打开一个单独的窗口中输入小工具。
I'm trying to make the tkinter entry widget appear in the same window as the text. 我试图使tkinter条目小部件与文本显示在同一窗口中。 Can someone please tell me how to do this?
有人可以告诉我该怎么做吗?
First off, 首先,
paralist = []
The list is empty so a random word between 1 and 10 will be wrong since theres nothing in the list. paralist = []
列表为空,因此1到10之间的随机单词将是错误的,因为列表中没有任何内容。
master = Tk() # since Tk() is already assigned to root this will make a new window
a = Entry(master) # a is already assigned to canvas
a.pack() # this is already declare under a=canvas
a.focus_set()
def callback():
print (a.get())
Edit: 编辑:
I suspect that your file might be the problem. 我怀疑您的文件可能是问题。 This code:
这段代码:
import random
from tkinter import *
root = Tk()
a = Canvas(root, width = 400, height = 400)
a.pack()
e = Entry(root)
e.pack()
paralist = []
x = random.randint(1,10)
file = open("teste.txt")
line = file.readline()
for line in file:
paralist.append(line.replace("\n", ""));
a.create_text(200,50, text = "Typing Fun", width = 700, font = "Verdana", fill = "purple")
a.create_text(200,300, text = paralist[x], width = 700, font = "Times", fill = "purple")
b = Entry(root)
b.pack()
b.focus_set()
def callback():
print (a.get())
root.mainloop()
With this as "teste.txt": 以此为“ teste.txt”:
test0
test1
test2
test3
test4
test5
test6
test7
test8
test9
test10
Works fine for me. 对我来说很好。
import tkinter
window = tkinter. Tk()
window.geometry('200x200')
ent= tkinter.Entry(window)
ent.pack()
This is the easiest way to do it in tkinter. 这是在tkinter中最简单的方法。 If you need something else Just ask me:)
如果您还需要其他东西,请问我:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.