如何将3x3网格从python转换为tkinter

时间:2015-11-27 12:06:38

标签: python tkinter

所以我有这段代码,它只在python shell中打印出来,我想知道如何使用tkinter中的标签获取单词并将它们放入网格中。很抱歉我没有解释。

import random
    with open('Words.txt') as f:
        words = random.sample([x.rstrip() for x in f],9)
        grid = [words[i:i +3] for i in range(0, len(words),3)]
        for x,y,z in grid:
            print(x,y,z)

2 个答案:

答案 0 :(得分:1)

这应该让你开始。我通常使用pack来完成我的项目。但为此,我建议使用网格,因为它可以让您轻松定位标签。

import tkinter as tk


words = [['Word 1', 'Word 2', 'Word 3'],\
         ['Word 4', 'Word 5', 'Word 6'],\
         ['Word 7', 'Word 8', 'Word 9']]

root = tk.Tk()

for i, (x, y, z) in enumerate(words):
    tk.Label(root, text=x).grid(row=i, column=0)
    tk.Label(root, text=y).grid(row=i, column=1)
    tk.Label(root, text=z).grid(row=i, column=2)


root.mainloop()

答案 1 :(得分:0)

使用现有代码的另一种答案,在Python 3中:

import random
from tkinter import *
root = Tk()
    with open('Words.txt') as f:
        words = random.sample([x.rstrip() for x in f],9)
        grid = [words[i:i +3] for i in range(0, len(words),3)]
        for i, (x,y,z) in grid:
            Label(root, text=x).grid(row=i, column=0)
            Label(root, text=y).grid(row=i, column=1)
            Label(root, text=z).grid(row=i, column=2)

root.mainloop()

无法为您测试,因为没有样本数据但应该有效。