Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在tkinter文本小部件上显示2d列表_Python_Python 3.x_Tkinter - Fatal编程技术网

Python 在tkinter文本小部件上显示2d列表

Python 在tkinter文本小部件上显示2d列表,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,有人能帮帮我吗,我有点困在这一部分,因为我还不熟悉 我自己我想在“你的数组”标签小部件中显示我的2d列表 我怎么可能做到呢? 这是我的不完整代码: from tkinter import * from random import randint arraylist = [[0] * 10 for i in range(10)] def generate(): r = int(numrow.get()) c = int(numcol.get()) Label(ma

有人能帮帮我吗,我有点困在这一部分,因为我还不熟悉 我自己我想在“你的数组”标签小部件中显示我的2d列表

我怎么可能做到呢? 这是我的不完整代码:

from tkinter import *
from random import randint


arraylist = [[0] * 10 for i in range(10)]


def generate():
    r = int(numrow.get())
    c = int(numcol.get())
    Label(main, text="Your Array:").grid(row=2)
    blank = Text(main, width=75, height=7)
    blank.delete(0.0, END)

    for row in range(r):
        for column in range(c):
            arraylist[row][column] = randint(1, 100)
    for x in range(r):
        for y in range(c):
            print('\t', arraylist[x][y], end=' ')
            blank.insert(END,"%d"%(arraylist[x][y]))
            blank.grid(row=x+2, column=y+1, sticky=NSEW)

            print()

main = Tk()
main.geometry("500x500")
Label(main, text="Enter Row:").grid(row=0)
Label(main, text="Enter Column:").grid(row=1)

numrow = Entry(main)
numcol = Entry(main)

numrow.grid(row=0, column=1)
numcol.grid(row=1, column=1)

Button(main, text='Quit', command=main.destroy).grid(row=4, column=0, sticky=W, pady=4)
Button(main, text='Show', command=generate).grid(row=4, column=1, sticky=W, pady=4) 

mainloop()

如果要将所有的
文本
放在一个
中,则应在
文本
中插入
\t
\n
空格
,就像使用
打印()一样



如果希望每个值都在分隔的
文本中
,则必须在
内为
-循环创建
空白

def generate():
    r = int(numrow.get())
    c = int(numcol.get())

    Label(main, text="Your Array:").grid(row=2)

    for x in range(r):
        for y in range(c):

            blank = Text(main, width=3, height=1)
            blank.grid(row=x+2, column=y+1, sticky='NSEW')

            value = randint(1, 100)
            arraylist[x][y] = value

            print('\t', value, end=' ')
            blank.insert(END, "%d" % (value))

        print()

尝试这种方法:如果在
print()
中使用
\t
\n
,那么为什么不在
blank.insert()
中使用
\t
\n
呢?如果你想把每个值都放在分隔的
文本中,那么你必须在
循环的
内部创建
blank=Text()
。当前您只有一个
文本
,并且总是将值放在相同的
文本
中。
def generate():
    r = int(numrow.get())
    c = int(numcol.get())

    Label(main, text="Your Array:").grid(row=2)

    blank = Text(main, width=75, height=7)
    blank.delete(0.0, END)
    blank.grid(row=2, column=1, sticky=NSEW)

    for x in range(r):
        for y in range(c):
            value = randint(1, 100)
            arraylist[x][y] = value

            print('\t', value, end=' ')
            blank.insert(END, "\t%d  " % (value))

        print()
        blank.insert(END, "\n")
def generate():
    r = int(numrow.get())
    c = int(numcol.get())

    Label(main, text="Your Array:").grid(row=2)

    for x in range(r):
        for y in range(c):

            blank = Text(main, width=3, height=1)
            blank.grid(row=x+2, column=y+1, sticky='NSEW')

            value = randint(1, 100)
            arraylist[x][y] = value

            print('\t', value, end=' ')
            blank.insert(END, "%d" % (value))

        print()