2016-05-26 29 views
1

私が探しているのは、反復で自動的にボタンのグリッドを作成する方法です。例えば配列からtkinterにボタンを作成するPython

私はこの配列

Array = 
     [[0,0,0,0,0,0,0], 
     [0,0,0,0,0,0,0], 
     [0,0,0,0,0,0,0], 
     [0,0,0,0,0,0,0], 
     [0,0,0,0,0,0,0], 
     [0,0,0,0,0,0,0]] 

を持っていると私はすべてのヘルプは

+0

どのような問題がありますか?ループでボタンを作成しようとしましたか? –

+0

私はPythonでプログラミングを始めているので、たくさんの経験はありません – CDR

+0

ボタンを作成しますが、それは垂直にしてグリッドを使用させません。 質問でアルゴリズムを編集しました – CDR

答えて

2

は私たちが@BryanOakley助言何MCVEに入れましょう理解されるであろう

from tkinter import * 

window = Tk() 
def create_buttons(): 
    global Array 
    for rows in Array: 
     for numbers in rows: 
      button = Button (text = 'Hello') 
      button.pack() 
window.mainloop() 

のようなものを見てあなたはオブジェクト指向の概念を使用する必要があります。ここで

''' 
Created on May 27, 2016 

@author: Billal BEGUERADJ 
''' 

import Tkinter as Tk 
import numpy as np 

class Begueradj(Tk.Frame): 
    def __init__(self,parent): 
     Tk.Frame.__init__(self, parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     ''' 
     Draw the GUI 
     ''' 
     self.parent.title("RUN ON START TEST")  
     self.parent.grid_rowconfigure(1,weight=1) 
     self.parent.grid_columnconfigure(1,weight=1) 

     self.frame = Tk.Frame(self.parent) 
     self.frame.pack(fill=Tk.X, padx=5, pady=5) 

     # Create a 6x7 array of zeros as the one you used 
     self.a = np.zeros((6,7)) 
     for i in range(0,self.a.shape[0]): 
      for j in range(0,self.a.shape[1]): 
       self.b = Tk.Button(self.frame, text = 'Hello') 
       self.b.grid(row=i, column= j) 

# Start the main program here    
if __name__ == "__main__": 
    root=Tk.Tk() 
    app = Begueradj(root) 
    root.mainloop() 

以下のコードでは、初期化()メソッドは、(あなたのように)ゼロの6X7 numpy配列を作成し、その後、各反復のボタンを作成するために、その2つの軸(次元)をループ上記のプログラムを実行した後に得られるもの:

enter image description here

関連する問題