0

フレームをリストに保存しようとしているので、ウィジェットの間に小さなスペースを入れて、3 x 3 でウィジェットを重ねることができます

しかし、私はそれを機能させることができないようです。

コード:

self.cboCombo = []
self.frame_type = []
for x in range(7):
   self.cboCombo.append([])
      for y in range(3):
         self.cboCombo[x].append([])        

for i in range(7):
   self.frame_type.append(i)
   self.frame_type[i] = Frame(self.frame_type)
   self.frame_type[i].pack(side=TOP, expand=1, ipady= 11)
   self.cboCombo[i][0] = ttk.Combobox(self.frame_type[i], values=self.valCombo,             textvariable=self.varCombo[1][0])
   self.cboCombo[i][0].pack(padx= 5)
   self.cboCombo[i][1] = ttk.Combobox(self.frame_type[i], values=self.valCombo, textvariable=self.varCombo[1][1])
   self.cboCombo[i][1].pack(padx= 5)
   self.cboCombo[i][2] = ttk.Combobox(self.frame_type[i], values=self.valCombo, textvariable=self.varCombo[1][2])
   self.cboCombo[i][2].pack(padx= 5)

エラーメッセージ:

  File "File.py", line 89, in __init__
    self.frame_type[i] = Frame(self.frame_type)
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 2453, in __init__
    Widget.__init__(self, master, 'frame', cnf, {}, extra)
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1965, in __init__
    BaseWidget._setup(self, master, cnf)
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1943, in _setup
    self.tk = master.tk
AttributeError: 'list' object has no attribute 'tk'

これを解決するための解決策または別の方法はありますか?

ありがとう

4

1 に答える 1

0

Tkinterのドキュメントに従ってください:

w = Frame ( master, option, ... )

Parameters:
    master: This represents the parent window.

self.frame_typeオブジェクトが親ウィンドウを表しているようには見えません。

于 2013-05-09T13:56:31.130 に答える