2016-04-10 19 views
-2

長さがわからない文字列のリストがあります。それらのリストは5〜20文字列の間になります...Tkinterボタンの作成

リスト内の各文字列に対してボタンを1つ作成すると、ボタンが画面を横切って表示され、画面の最後まで次の行に移動しますもう一度やり直してください。

def fileButtons(): 
    for i, k in enumerate(initialfiles): 
     initButtons = Button(master, text=k).grid(column = i, row = 1) 

このコードでは、ボタンを完全に移動して新しい行に戻らないようにします。フレームを作成してボタンをフレームに入れても、次のラインには入りません。私は行が1になるように定義していると仮定していると仮定しています。

+0

あなたの答えを編集するのは素晴らしいことではありません。ちょっとしたことではありませんが、私の質問はあなたのために達成しました。私は問題を知っていたが、それを修正する方法を知らなかったということだけを述べていた。 – cole

+0

あなたは私がdownvotedかどうか分かりません。私は、この質問はダウンボートに値すると思うと思っています。それは、いかなる研究にも全く試みをしていない、あるいは自分で問題を解決しようとする試みを示しています。あなたは問題が何であるかを知っていましたが、何が起こるかを見るために別々の行番号を使用しようとする論理的なステップを取らなかったのです。あなたはこの問題を自分で解決するのに十分なほどスマートです。 –

+0

私はあなたの建設的な批判に感謝します。あなたは正しいです。私は私の研究を示し、今からより良い質問をフォーマットします。 – cole

答えて

0

あなたはそれぞれの行を1にするためです。したがってウィジェットはすべて異なる列のグリッド内にありますが、同じ行

新しい行にウィジェットを配置するには、何らかのブレークポイントを作成する必要があります。

あなたのニーズに合わせて調整できるランダムな例です。

def fileButtons(): 
    row = 1 
    for i, k in enumerate(initialfiles): 
     if i % 2: row += 1 
     initButtons = Button(master, text=k).grid(column = i, row = row) 
0

私は個人的に探していたもののために正確な答えを示したかった:スレイヤーが、私はまた、定義された列に答えた内容が追加された

def buttonUI(self): 
    row = 0 
    column = 0 
    for i, k in enumerate(initialfiles): 
     if i >= 4: 
      row += 1 
     column += 1 
     if column == 4: 
      column = 0 
     b = Button(self,text=k).grid(column = column, row = row, sticky=W+E) 

    self.pack() 

を。最後に、少し見やすくするために、「k」の長さがボタンごとに異なるため、スティッキーオプションを追加しました。入力がありがとうございます。

関連する問題