2017-08-09 7 views
-1

私は他のいくつかの質問を見てきましたが、私の解決策を助けるものはありません。私は悲しいほど知的ではないと思う。テキストボックスをpython tkinterアプリケーションに入れる方法は?

基本的な質問私は知っています。私はPythonを学ぶことに決めました。そして、私はtkinterを学ぶために基本的なアプリを作っています。

基本的には、人々の運転免許証の詳細(名前と有効期限)を保存して表示するアプリです。私が持っている能力の1つに名前の検索があります。まず、テキストボックスを私のウィンドウに入れる方法を理解する必要があります。

Iは、以下の(まあ、私が関連している何だと思います!)、関連するコード掲載します。私はこれを試してみて、実行すると、私は

import tkinter as tk 

を持っている一番上の

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() 

そしてもちろんを私は "タイプオブジェクト"検索 "属性" tk 'を持っていません。それはうまくいきました - ホームウィンドウの関連するボタンをクリックすると検索ウィンドウが開きます。私がエントリーボックスを追加しようとするまで。

私はここで間違っていますか?私はまったくの初心者ですので、私は私の愚かさに直面する準備ができています

この質問のフォーマットがひどい場合はまた、私はここでも初心者投稿です。すべてを正しい「コード」形式にすることは本当の痛みです

+0

とクラス下のインデントは、スクリプトで正しいこと、それはですここでやるだけの痛み – Benno

+0

ここでは苦痛ではありません。ほんの数秒しかかかりません。それを修正する時間をかけてください。 「クラス」の行を一番左に移動します。すべてのコードを選択します。 '{} 'のようなボタンをクリックします。 –

答えて

-1

まず、from tkinter import *を使用すると、必要なときに特定のものをインポートせずに、Tkintersライブラリをインポートするより効率的な方法です。あなたの質問に答えるために、ここにテキストボックスを入力するコードがあります。 t1 = Text(self)


は、テキストボックスにテキストを挿入するには:あなたはすでにそれを持っていない場合はt1.insert()

この例はt1.insert(END, 'This is text')

になり、t1は私がに割り当てるよ変数でありますテキストボックスですが、任意の変数を自由に選択できます。私は非常にtkinterのエフェートのチュートリアルをお勧めします、私はそれが非常に便利だとわかりました。ここにリンクがあります:http://effbot.org/tkinterbook/tkinter-application-windows.htm

最高の幸運!

+2

'from ... import *'は悪いスタイル(https://stackoverflow.com/questions/2386714/why-is-import-bad)とみなされ、しばしば初心者の間で混乱につながります(https:// stackoverflow。 com/questions/45502124/on-import-modules-and-method-in-python)を参照してください。 – Hannebambel

+0

良い点Hannebambelですが、すべてのtkinterが厳密にGUIに関連していると考えると、特定の項目をインポートする代わりに時間を節約できます。 – Liam

+0

の 'import tkinter as tk'を使うのが好ましい方法です。なぜなら、バージョン間のコードに対する必要な変更を減らすことによって、tkinterのバージョン間の比較がより良くなるからです。 –

0

私はあなたがレイアウトマネージャを指定し、代わりにselfconsoleに合格していなかったので、問題に実行している推測している:ああ

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() 
関連する問題