为了账号安全,请及时绑定邮箱和手机立即绑定

返回值到 tkinter 接口

返回值到 tkinter 接口

慕雪6442864 2023-07-27 14:11:41
我想使用 tkinter 在 python 中创建一个类似 excel 的界面,如下所示。from tkinter import * window=Tk() x = [1,2,3,4] height = 1width = 4for i in range(height):  # Rows     for j in range(width):  # Columns         b = Entry(window, text="")         b.grid(row=i, column=j) window.mainloop()我如何将列表 x 返回到 tkinter 界面?最好每个单元格 1 个数字。那可能吗?预期结果类似于:
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您可以entry使用以下方式定义值insert:


from tkinter import *


window = Tk()


x = [1, 2, 3, 4]


height = 1

for i in range(height):

    for j, val in enumerate(x):

        b = Entry(window)

        b.insert(0, val)

        b.grid(row=i, column=j)

window.mainloop()

结果:

//img1.sycdn.imooc.com//64c20ac70001034404940047.jpg

查看完整回答
反对 回复 2023-07-27
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

如果您尝试模拟电子表格,则需要一种方法来寻址每一行中的小部件。一旦掌握了这些,插入、删除和获取数据就变得非常简单。


最简单的方法是将条目小部件的引用存储为列表的列表,以便您可以按行号和列号引用任何单元格。


cells = []

for i in range(height):  # Rows

    row = []

    cells.append(row)

    for j in range(width):  # Columns

        b = Entry(window, text="")

        b.grid(row=i, column=j)

        row.append(b)

您现在可以用来cells引用任何小部件。例如,第 0 行第 2 列的小部件将为cells[0][2]。


有了这个基本结构,您现在可以轻松编写函数来一次获取或设置整行或整个区域。


例如,以下是创建函数的方法set_row:


def set_row(rownum, data):

    row = cells[rownum]

    for entry, value in zip(row, data):

        entry.delete(0, "end")

        entry.insert(0, value)

例如,要使用以下内容设置第一 (0) 行,x您可以执行以下操作:


set_row(0, x)

从电子表格中获取数据也很简单:


def get_data():

    rows = []

    for rownum in range(height):

        row = []

        rows.append(row)

        for columnnum in range(width):

            entry = cells[rownum][columnnum]

            row.append(entry.get())

    return rows


查看完整回答
反对 回复 2023-07-27
  • 2 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信