2

Tkinter を使用して基本的な GUI を作成し、グリッド マネージャーを使用してラベルの横にエントリ ボックスを作成しようとしていますが、エントリ オブジェクトで .grid() を使用すると、プログラムを実行するとウィンドウが表示されません。

同じウィジェットで.grid()を使用する他のものがある場合、.pack()を使用しないと聞いたので、.pack()を使用すると機能します。しかし、私は .grid() を使いたいと思っています。

コードは以下のとおりです。エントリ オブジェクトの showName に問題があります。コメントアウトされた .pack() ステートメントは機能するステートメントであり、.grid() ステートメントは機能しないステートメントです。

これの何が悪いのか誰か知っていますか?

from Tkinter import *

class RenamerGUI():
    def __init__(self, master):
        frame = Frame(master)
        frame.pack() #Make frame visible

        self.exit = Button(frame, text = "Exit", fg = "red", command = frame.quit)

        self.csv2tsv = Button(frame, text = "csv2tsv", fg = "green", bg = "black", command=self.csv2tsv)
        self.epguidestsvFormatter = Button(frame, text = "epguidestsvFormatter", fg = "green", bg = "black", command = self.epguidestsvFormatter)
        self.epNamesList = Button(frame, text = "epNamesList", fg = "green", bg = "black", command = self.epNamesList)
        self.SeasonSplitter = Button(frame, text = "SeasonSplitter", fg = "green", bg = "black", command = self.SeasonSplitter)
        self.Renamer = Button(frame, text = "Renamer", fg = "green", bg = "black", command = self.Renamer)

        self.showLabel = Label(frame, text = "Show: ")

        self.showName = Entry(master)

        self.get = Button(frame, text = "Get", command = self.textgetter)


        self.exit.grid(row=3, column=4)
        self.csv2tsv.grid(row=1, column = 0)
        self.epguidestsvFormatter.grid(row=1, column=1)
        self.epNamesList.grid(row=1, column=2)
        self.SeasonSplitter.grid(row=1, column=3)
        self.Renamer.grid(row=1, column=4)
        self.showLabel.grid(row=2)
        self.showName.grid(row=2, column=1)
        #self.showName.pack(side=BOTTOM)
4

1 に答える 1

2

エントリの親が間違っています:

self.showName = Entry(master)

する必要があります

self.showName = Entry(frame)
于 2012-11-03T17:57:05.607 に答える