2017-08-09 39 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() 
相關問題