python-3.x - 如何将列表的元素按顺序放入标签矩阵中?
问题描述
我正在为这个 for 循环而苦苦挣扎。如何从位置[1],[1]开始依次将数字单独放入矩阵中?当它到达行尾时,它将继续序列到下一行,从第 1 列开始。
我拥有的代码要么是列形式,要么是行形式。
我知道我错过了一些东西,但不确定是什么。非常感谢。
import tkinter as tk
the_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
new_list = {}
def main():
root = tk.Tk()
root.title("class basic window")
root.geometry("800x500")
root.config(background="LightBlue4")
app = Application(root)
root.mainloop()
class Application(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent, bg="ivory2", bd=2, relief=tk.RAISED)
self.parent = parent
self.pack(fill=tk.BOTH, expand=1)
self.initUI()
def initUI(self):
for i in range(8):
for j in range(6):
self.label=tk.Label(self, relief="ridge",width=13, height=3 )
self.label.grid(row=i, column=j, sticky="nsew", )
i = 0
for num in the_list:
new_list[i,j] = tk.IntVar()
new_list[i,j].set(num)
self.label = tk.Label(self, textvariable=new_list[i,j])
self.label.grid(row=i, column=j)
i += 1
if __name__ == '__main__':
main()
解决方案
不完全确定这是否是您要完成的任务,但听起来您想将 the_list 中的数字放入顺序框中,从左上角开始,从左到右,然后从上到下。如果是这种情况,以下代码将执行此操作。
import tkinter as tk
the_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
new_list = {}
def main():
root = tk.Tk()
root.title("class basic window")
root.geometry("800x500")
root.config(background="LightBlue4")
app = Application(root)
root.mainloop()
class Application(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent, bg="ivory2", bd=2, relief=tk.RAISED)
self.parent = parent
self.pack(fill=tk.BOTH, expand=1)
self.initUI()
def initUI(self):
i = 0
for r in range(8):
for c in range(6):
self.label=tk.Label(self, relief="ridge",width=13, height=3 )
self.label.grid(row=r, column=c, sticky="nsew", )
if i < len(the_list):
self.label['text'] = str(the_list[i])
i += 1
if __name__ == '__main__':
main()
推荐阅读
- html - 代码帮助!我想覆盖一个部分的背景和悬停颜色
- angular - 在“路径”中键入“名称”是 2 个模块声明的一部分:构建 Ionic 4 项目时出错
- python - 更改数据框的列名后出现键错误
- neural-network - 用python重置神经网络中的连接
- javascript - 如何使用 mongoose 更新 mongodb 中的值?
- c++ - 由于二维数组声明,C++ 14 中的运行时错误
- node.js - 为什么工作没有在公牛的等待队列中等待?
- javascript - jQuery函数过滤多列
- angular - 使用 RxJS 启动 spinner,显示至少 500ms,然后最多在 10s 后停止
- common-lisp - clsql:为什么要“神奇地”添加表?