python - 是否可以将数百个按钮动态添加到 tkinter gui?
问题描述
我的目标是使用 Python 创建一个 Tkinter GUI,它基本上是一个巨大的 2d 按钮网格。我已经能够在有限的情况下成功地做到这一点。
到目前为止看起来像这样:
生成该图像的代码是这样的:
import numpy as np
import tkinter as tk
def main():
root = Application()
root.geometry("900x650")
root.title("Search algorithm visualizer")
root.setup()
root.mainloop()
class Application(tk.Tk):
def setup(self):
self.frame = tk.Frame(self)
self.frame.grid()
# initialize variables
self.rows = 20
self.cols = 20
self.grid = np.empty(shape=(self.rows, self.cols), dtype=object) # actual grid
# start functions
self.setupgrid()
def setupgrid(self):
for i in range(self.rows):
for j in range(self.cols):
button = self.grid[i][j] = tk.Button(self.frame, height=1, width=2, text="")
button.grid(row=i, column=j)
main()
您可能已经注意到,网格尺寸由包含值 20 和 20 的 cols 和 rows 变量决定,这将动态生成 400 个按钮对象。我面临的问题是,如果我将 cols 和 rows 变量设置为高值(例如,100 和 100,这将产生 10,000 个按钮对象),程序将冻结。我希望能够添加大量按钮。
我的问题归结为:
- 可能吗?
- 如果是这样,我该如何优化程序来做到这一点?
谢谢。
解决方案
推荐阅读
- android - 从 Android 代码启动 Intent 后 Flutter 进程被终止
- c# - 构建对应于 Enumerable.Cast 的编译委托
? - android - MsalException:应用程序未配置为多租户应用程序。安卓
- javascript - setState 在从嵌套子功能组件更新状态时出错
- python - 如何使用非分析数据绘制 Plotly 等值面?
- meson-build - 介子找不到静态库
- excel - 粘贴在excel的最后一行
- sql - 如何在 SQL Server 中操作 JSON 中的字符串计数
- django - 使用多个 URL 参数查询 haystack 搜索
- powershell - 如何在 Powershell 中检查用户是否在 OU 中