【问题标题】:placing all data from list into seperate tkinter label将列表中的所有数据放入单独的 tkinter 标签
【发布时间】:2020-08-28 13:02:05
【问题描述】:

我正在尝试创建一个函数,它从列表中打印字符串的行和列。

input_data_col1 = [row1,row2,row3]
input_data_col2 = [row1,row2,row3]
input_data_col3 = [row1,row2,row3]
input_data_col4 = [row1,row2,row3]

期望的输出:(在网格化的 tkinter 标签中)

row1    row1    row1    row1
row2    row2    row2    row2
row3    row3    row3    row3

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 看看,pandas.DataFrame
  • 有很多关于如何在网格中排列小部件的文档,并且这个网站上有一些问题展示了如何创建表格。目前尚不清楚您需要什么具体帮助。你能展示一下你的尝试吗?

标签: python list tkinter label


【解决方案1】:
def func(ina, inb, inc, ind):
  print('\n'.join('    '.join(['{:.4f}'.format(x) for x in l]) for l in [ina, inb, inc, ind]))

这是一种非常幼稚的方法,在实践中行不通。实际上,您应该将这些存储在数据表中。查看pandas.DataFrame 对象的文档。

举个简单的例子,考虑一个数组:

data = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]

您可以使用此数据创建 pandas 数据表

pandas.DataFrame(data)

您可以这样添加行标签:

labels = [“a”, “b”, “c”, “d”]
pandas.DataFrame(data, labels)

你可以使用 pandas 库做很多其他事情,这就是我强烈建议阅读它的文档的原因。

OP后来改变了他们的问题,所以这是我的更新答案

您可以创建一个标签表,然后将每个标签填充到一个唯一的单元格中,例如

def func(data):
  labels = [[Label(root, text = cell) for cell in y] for y in data]
  for i in range(len(labels)):
    for j in range(len(labels[i])):
      labels[i][j].grid(i, j)

【讨论】:

  • 有趣的谢谢。我会读一读。我将如何使用 tkinter 将 4x4 网格中的数据网格化到标签中?
  • 谢谢,它成功了,但我无法在我的 mac 上安装 panda,所以我在我的 PC 上执行此操作。对于未来的一些项目,不得不求助于一些非模块方法,但有用的信息,再次感谢
  • 没问题。就在下一次,试着更多地强调你原来的问题,并且要具体。
猜你喜欢
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
相关资源
最近更新 更多