我已经查看了其他几个问题,但似乎没有一个问题对我的解决方案有帮助。我觉得我不是很聪明。
我知道的基本问题。我决定学习python,并且我正在用tkinter制作一个基本的应用程序来学习。
它基本上是一款存储和显示人员驾驶执照详情(姓名和有效期)的应用程序。我希望它拥有的能力之一是名称查找。首先,我需要弄清楚如何将文本框放入我的窗口!
我将在下面发布相关的(好的,我认为相关的!)代码:
class search(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Enter a name to display that individual's details", font=LARGE_FONT)
label.pack(pady=10,padx=10)
label1 = tk.Label(console, text="Name:").pack()
searchbox = tk.Entry(console)
searchbox.pack()
button1 = tk.Button(self, text="SEARCH", command=lambda: controller.show_frame(main))#not created yet
button1.pack()
button2 = tk.Button(self, text="HOME", command=lambda: controller.show_frame(main))
button2.pack()
当然在顶部我有
import tkinter as tk
当我尝试运行这个时,我会得到" typeobject" search"没有属性''"。它运行正常 - 当我单击主窗口上的相关按钮时,搜索窗口将打开。直到我尝试添加条目框。
我在这里做错了什么?我是一个全新的人,所以我准备面对我的愚蠢
如果这个问题的格式很糟糕,我也很抱歉,我也是这里的新手。把一切都变成正确的#34;代码"格式是一种真正的痛苦
答案 0 :(得分:0)
由于您没有指定布局管理器并通过console
而不是self
,我猜测您遇到了问题:
import tkinter as tk
class Search(tk.Frame):
def __init__(self, parent=None, controller=None):
tk.Frame.__init__(self, parent)
self.pack() # specify layout manager
label1 = tk.Label(self, text="Enter a name to display that individual's details")
label1.pack(pady=10, padx=10)
label2 = tk.Label(self, text="Name:")
label2.pack()
searchbox = tk.Entry(self)
searchbox.pack()
button1 = tk.Button(self, text="SEARCH", command=lambda: controller.show_frame(main))
button1.pack()
button2 = tk.Button(self, text="HOME", command=lambda: controller.show_frame(main))
button2.pack()
# Just cobble up the rest for example purposes:
main = None
class Controller:
def show_frame(self, frame=None):
pass
app = Search(controller=Controller())
app.mainloop()
答案 1 :(得分:-1)
首先,使用from tkinter import *
是一种更有效的导入Tkinters库的方法,而无需在需要时导入特定的东西。要回答你的问题,这里是输入文本框的代码
t1 = Text(self)
要在文本框中插入文字:t1.insert()
这方面的一个例子是t1.insert(END, 'This is text')
如果你还没有得到它,t1是我分配给文本框的变量,尽管你可以选择你想要的任何变量。我强烈推荐tkinter上的effbots教程,我发现它非常有用。这是链接:http://effbot.org/tkinterbook/tkinter-application-windows.htm
祝你好运!