2017-08-09 37 views
-1

我看过其他几个问题,但他们都没有帮助我的解决方案。我想我只是不是很伤心。如何将文本框放入python tkinter应用程序?

基本的问题,我知道了。我决定学习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”搜索“没有属性'tk'”。它工作正常 - 当我单击主窗口上的相关按钮时,搜索窗口将打开。直到我试图添加输入框。

我在这里做错了什么?我是一个彻底的新手,所以我准备去面对我的愚蠢

而且道歉,如果这个问题的格式是可怕的,我是一个新手张贴在这里。把一切都变成正确的“代码”的格式是一个真正的痛苦

+0

哦,类下面的压痕脚本正确的,这是只是在这里做一个痛苦 – Benno

+0

在这里做这不是一件痛苦的事情。它只需要几秒钟。请花时间修复它。将“class”一行移到左边。选择所有的代码。点击看起来像“{}”的按钮。 –

回答

-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

祝您好运!

+2

'从...进口*'被认为是不好的风格(https://stackoverflow.com/questions/2386714/why-is-import-bad),往往导致混乱,especilly之中初学者(https://开头计算器。 COM /问题/ 45502124 /上导入模块和法,名式的Python)。 – Hannebambel

+0

好点的Hannebambel,但考虑到所有的tkinter严格gui相关,这将节省时间,而不是导入特定的项目。 – Liam

+0

使用'进口Tkinter的作为tk'是优选的方法,因为它允许Tkinter的版本之间的更好的可比性通过减少版本之间的代码所需的更改。 –

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() 
相关问题