2017-10-12 4 views
0

テキストウィンドウと非常に役立つチュートリアルを含むテキストウィンドウを含むいくつかのtkinterチュートリアルで作業しています。ここをクリックしてください:https://www.youtube.com/watch?v=oV68QJJUXTU例にTKテキストウィンドウを追加しようとしました。tkinterの混乱をインポートしました

この例ではテキストウィンドウを追加しようとしましたが、定数ENDが定義されていないため、テキストウィンドウが開いていないか、フレームに表示されませんでした。私はそれを輸入差異まで追跡した。 "from tkinter import *"を使用すると定数ENDが定義されていましたが、このチュートリアルのメソッド "import tkinter as tk"を使用すると、定数ENDは定義されませんでした。私は、テキストウィンドウを使用しようとするとエラーをクリアするように定義しました。この例ではウィンドウが開かない(表示されない)ので、インポート*メソッドを使用するように書き直す必要があります。 tk差としてインポートします。

tkとしてのインポートは、*よりも正しいメソッドである可能性が高いので、私はそれを行う方法を学ぶべきだと思います。

何か提案がありますか?

このコードは

from tkinter import * 
..... 

class set_window(Thread): 

    def __init__(self, labelText): 
     Thread.__init__(self) 
     self.labelText = labelText 
     self.labelText.set("Text Window Display") 

     self.T = Text(root, height=40, width=60, bd=10) 
     self.T.grid(row=1, column=0) 
     self.T.focus_set() 
     self.T.insert(END, "Just a text Widget\nin two lines\n") 

に動作します。しかし、これはしませんでした:

import tkinter as tk 

    class StartPage(tk.Frame): 
    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     label = tk.Label(self, text="Blast it!", font=XLARGE_FONT) 
     label.pack(pady=10, padx=10) 

     label_2 = tk.Label(self, text="Input Text Here", font=LARGE_FONT) 
     label_2.pack(pady=10, padx=10) 

     self.T = tk.Text(self, height=40, width=60, bd=10)   
#  print(type(END)) 
#  input ("Press Enter") 
     self.T.insert(END, "Just a text Widget\nin two lines\n") 
     self.T.insert('end', "Just a text Widget\nin two lines\n") 
     self.T.focus_set() 
+0

「END」または「tk.END」の代わりに「end」という文字列を使用します。定数を使用する理由はありません。 –

+0

私は私の答えのいくつかを見つけたと思う。私は "END"を "tk.END"に変更し、次のようにpackステートメントを追加しました.Self.T.pack() –

+0

こんにちはブライアン。 "tk.END"の手がかりをありがとう。定数ENDシームは、多くのプログラマーのユーザーとモジュールで定義されているものと同じです。だから私はそれがそうする理由だと思う。私はここで暗闇の中で頑張っている。 –

答えて

1

あなたはfrom tkinter import *を行う際に利用可能であるENDにアクセスしたい場合は、あなたがtk.ENDときのようにそれにアクセスする必要があると思いますあなたはimport tkinter as tkです。または、単に'end'を使用することもできます。もう1つの解決策はfrom tkinter.constants import ENDです。

+0

私は常に引用符で囲まれた方法を使用すると言います。これにより、どのようにインポートするかの問題を防ぐことができます。 –

0

END定数に接頭辞tk.ENDを付ける必要があり、それがエラーでクリアされていることがわかりました。

私は、テキストウィンドウの挿入ステートメントの後にPACKステートメントを追加する必要があることがわかりました。ページコードは次のようになります。

class StartPage(tk.Frame): 

def __init__(self, parent, controller): 
    tk.Frame.__init__(self, parent) 
    label = tk.Label(self, text="Blast it!", font=XLARGE_FONT) 
    label.pack(pady=10, padx=10) 

    label_2 = tk.Label(self, text="Input Text Here", font=LARGE_FONT) 
    label_2.pack(pady=10, padx=10) 

    self.T = tk.Text(self, height=40, width=60, bd=10)   
    self.T.insert(tk.END, "Just a text Widget\nin two lines\n") 
    self.T.focus_set() 
    self.T.pack() 
+0

正確なものが与えられたときは、自分の質問に答えないでください。この投稿を削除し、@ mentalitaを正しい答えとして受け入れるべきです。また、私はここでfocus_set()が必要ではないと思います。私はあなたのコードで見ることができる有用な目的を果たさない。 –

関連する問題