0

私が作成している定義テスター プログラム用の小さな GUI を作成しようとしています。私の GUI は次のようにする必要があります。

Word: # label, then entry widget
Definition: # label, entry widget
Part of Speech: # label, then entry widget
Go Quit # each are buttons

これは私がこれまでに持っているものです:

from Tkinter import *

class GetWord:
    def __init__(self, master):
        self.frame = Frame(master)
        self.frame.pack()
        self.wordL = Label(self.frame, text = 'Word: ')
        self.wordL.pack(side = 'left')
        self.wordE = Entry(self.frame)
        self.wordE.pack(side = 'right', after=self.wordL)
        self.defL = Label(self.frame, text = 'Definitions: ')
        self.defL.pack(side = 'left', after=self.wordE)
        self.defE = Entry(self.frame)
        self.defE.pack(side = 'right', after=self.defL)
        self.posL = Label(self.frame, text = 'Part of Speech: ')
        self.posL.pack(side = 'left', after=self.defE)
        self.posE = Entry(self.frame)
        self.posE.pack(side = 'right', after=self.posL)
        self.buttonE = Button(self.frame, text = 'Go', command = self.getInfo)
        self.buttonE.pack(side='bottom', after=self.posE)
        self.quitB = Button(self.frame, text = 'Quit', fg = 'red', command = self.frame.quit)
        self.quitB.pack(side='bottom', after=self.buttonE)
    def getInfo(self):
        print self.wordE.get(), self.defE.get(), self.posE.get()

root = Tk()
f = GetWord(root)
root.mainloop()

ただし、並びません。それぞれを「行」として関連付けるにはどうすればよいですか (1 つのラベル、「行」ごとに 1 つのエントリ、および 2 つのボタンを含む最後の「行」)/

また、この部分がどのように機能するかわかりません:

root = Tk()
f = GetWord(root)
root.mainloop()

rootクラスを直接参照していGetWordないため、どのように機能するかわかりません。誰かが私にこれを説明できれば、それは素晴らしいことです. ありがとう!

4

2 に答える 2

2

これを行うには、に置き換える必要がありpackますgrid。を使用するgrid場合は、最初にウィジェットに名前を付ける必要があります (たとえば) f = Label(#info)。次に、 を設定しますgrid。これは pack に似ていますが、より詳細に制御できます。f.grid(row =1, column = 1, sticky = W). の詳細についてgridは、こちらをご覧ください: http://effbot.org/tkinterbook/grid.htm

于 2013-02-17T03:10:20.070 に答える
1

2 番目の部分についてrootは、クラスにアクセスしますGetWordroot = Tk()ルートを Tkinter ウィンドウとして設定します。と言うとf = GetWord(root)、マスター ウィンドウを として設定していることrootfなりますroot。次に、GetWordその__init__メソッドを実行します。root.mainloop()ウィンドウを実行し、マスター ウィンドウで必要な変更 (ボタン プッシュやその他のイベントの認識など) を待機するように指示します。これがないと、ウィンドウは何もしません。

于 2013-02-17T03:16:47.177 に答える