python - 在 tkinter 中从数组 Python 创建按钮

标签 python arrays python-3.x button tkinter

我正在寻找的是如何通过迭代自动创建按钮网格。

例如我有这个数组

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]]

我看起来像

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 ()

任何帮助将不胜感激

最佳答案

让我们输入 MCVE @BryanOakley 建议您使用面向对象的概念做什么。

在下面的代码中,initialize() 方法创建了一个 6x7 numpy零数组(如您的),然后循环其 2 个轴(维度)以在每次迭代时创建一个按钮:

'''
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()

以下是运行上述程序后得到的结果:

enter image description here

关于python - 在 tkinter 中从数组 Python 创建按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472121/

相关文章:

c# - 如何将包含数组的结构转换为字节数组?

python - 替换字符串列表元素中的字符

python 2.6 : How to access base class descriptor field hidden by derived class?

java - IP 范围和端口扫描器

python - 在Python中按特定值对JSON进行排序

c - C 中的字符串数组

python - 尝试注释哈希变量时,“ABCMeta”对象不可下标

python - 如何在 Windows 的 python 上运行 pip?

python - Python 方法签名中的 ->(破折号大于箭头符号)是什么意思?

python - 按 15 分钟时间间隔(但针对全天)的 pandas 数据框进行分组