ボタンプレスからトップレベルウィジェットを開き、見つかったサンプルからそのフレーム内にリストを生成しようとしています。私は生成されたフレームの中にウィジェットを配置しようとすると、しかし、私は次のエラーを取得する:トップフレーム内にtkinterウィジェットを配置できません
_tkinter.TclError: can't put .!treeview inside .!errorexample.!toplevel.!mclistdemo.!frame.!frame
私は
self.tree.grid(IN_ = F、に問題が絞られています行= 0、列= 0、粘着性= NSEW)
_create_treeviewメソッド内。 in_コマンドが削除されると、ウィジェットは親ウィンドウ内で正しく生成されます。私はこの問題が私の親/自己命名規則と関係があると思っていますが、私はまだその主題を把握するのに苦労しています。
私が実行した質問のほとんどは、同様に記述されていますが、生成中にウィジェットを配置しようとしているようですが、このコードではそうではありません。
from tkinter import *
from tkinter import ttk
from tkinter.font import Font
class ErrorExample(Frame):
def __init__(self, parent):
Frame.__init__(self,parent)
self.grid()
self.parent=parent
self.b4=Button(
self,
text="Load",
command=lambda: self.createWindow())
self.b4.grid()
def createWindow(self):
self.t = Toplevel(self)
MCListDemo(self)
class MCListDemo(ttk.Frame):
def __init__(self, parent, isapp=True):
ttk.Frame.__init__(self, parent.t)
self.grid()
self.isapp = isapp
self._create_widgets()
def _create_widgets(self):
if self.isapp:
self._create_demo_panel()
def _create_demo_panel(self):
demoPanel = Frame(self)
demoPanel.grid()
self._create_treeview(demoPanel)
self._load_data()
def _create_treeview(self, parent):
f = ttk.Frame(parent)
f.grid()
self.dataCols = ('country', 'capital', 'currency')
self.tree = ttk.Treeview(columns=self.dataCols,
show = 'headings')
self.tree.grid(in_=f, row=0, column=0, sticky=NSEW)
start=Tk()
ErrorExample(start)
if __name__=="__main__":
main()