遍历列表并使用 tkinter GUI 获取用户对每个项目的响应

用户1478335

我特别迟钝。我正在遍历技术意大利语单词列表,并希望使用 tkinter 界面插入翻译。在没有 GUI 的情况下这样做没有问题:我的问题是我无法弄清楚如何进行迭代,将单词加载到 ttk.Label 中并等待用户在 ttk.Entry 字段中输入。我已经搜索并找到了解释,但我不知道如何应用这些建议。这是我使用简单单词列表的代码:

from tkinter import ttk
import tkinter as tk

def formd():

    list_of_terms = ['aardvark', 'ant','zombie', 'cat', 'dog', 'buffalo','eagle', 'owl','caterpiller', 'zebra',  'orchid','arum lily' ]
    discard_list = []
    temp_dict={}
    list_of_terms.sort()

    for item in list_of_terms:
        listKey.set(item)

    # need to wait and get user input
        translation =dictValue.get()
        temp_dict[item]=translation
        discard_list.append(item)
    # check if it has worked
    for key, value in temp_dict.items():
        print(key, value) 
# GUI for dict from list
LARGE_FONT= ("Comic sans MS", 12)

root = tk.Tk()
root.title('Nautical Term Bilingual Dictionary')
ttk.Style().configure("mybtn.TButton", font = ('Comic sans MS','12'), padding = 1,  foreground = 'DodgerBlue4')
ttk.Style().configure('red.TButton', foreground='red', padding=6, font=('Comic sans MS',' 10'))
ttk.Style().configure('action.TLabelframe', foreground = 'dodger blue3')
#.......contents frames.....................
nb = ttk.Notebook(root)
page5 = ttk.Frame(nb)
# declare variables
listKey= tk.StringVar()
dictValue = tk.StringVar()
# widgets
keyLabel =ttk.Label( page5, text = "key from list", font=LARGE_FONT).grid(row=3, column = 0)
Keyfromlist =ttk.Label(page5, width = 10, textvariable = listKey).grid(row = 3, column = 1)

valueLabel =ttk.Label( page5, text = "enter translation", font=LARGE_FONT).grid(row=3, column = 2)
listValue =ttk.Entry(page5, textvariable =dictValue, width = 15).grid(row = 3, column = 3)
#listValue.delete(0,'end')
#listValue.focus_set()

# add buttons
b1 = ttk.Button(page5, text="add to dictionary",style = "mybtn.TButton", command = formd)
b1.grid(row = 5, column = 0)
b5 = ttk.Button(page5, text="clear entry", style ="mybtn.TButton")
b5.grid(row = 5, column = 2)
nb.add(page5, text='From List')

nb.pack(expand=1, fill="both")   

for child in root.winfo_children():
    child.grid_configure(padx =5, pady=5)

if __name__ == "__main__":
    root.mainloop()

我想知道是否有人可以花时间提出解决方案。如何停止while循环以使用Tkinter从用户那里获取输入?是我无法弄清楚如何在我的示例中使用的一个建议

伊森菲尔德

tkinter 不会循环中“玩得很好”while

幸运的是,您不需要使用一个。

您可以执行以下操作:

from tkinter import *

class App:
    def __init__(self, root):
        self.root = root
        self.list = ['aardvark', 'ant','zombie', 'cat', 'dog', 'buffalo','eagle', 'owl','caterpiller', 'zebra',  'orchid','arum lily' ]
        self.text = Label(self.root, text="aardvark")
        self.entry = Entry(self.root)
        self.button = Button(self.root, text="Ok", command=self.command)
        self.text.pack()
        self.entry.pack()
        self.button.pack()
    def command(self):
        print(self.text.cget("text")+" - "+self.entry.get())
        try:
            self.text.configure(text = self.list[self.list.index(self.text.cget("text"))+1])
        except IndexError:
            self.entry.destroy()
            self.button.destroy()
            self.text.configure(text = "You have completed the test")

root = Tk()
App(root)
root.mainloop()

这实质上是使用Button小部件迭代下一个文本并获取下一个输入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Tkinter登录Python GUI

来自分类Dev

使用tkinter,GUI制作字典

来自分类Dev

使用课程制作Tkinter Gui

来自分类Dev

使用Tkinter登录Python GUI

来自分类Dev

如何通过使用 tkinter 创建 GUI 来获取 Pandas 中列的用户输入?

来自分类Dev

使用框架和网格的tkinter GUI布局

来自分类Dev

使用.after方法更新Python Tkinter GUI

来自分类Dev

使用tkinter在GUI中__init__

来自分类Dev

使用多重处理时,Tkinter GUI冻结。

来自分类Dev

无法使用类显示Tkinter GUI

来自分类Dev

使用.after方法更新Python Tkinter GUI

来自分类Dev

在tkinter GUI上使用matplotlib的ginput函数

来自分类Dev

使用 tkinter 在 GUI 上显示程序的输出?

来自分类Dev

Python-GUI-Tkinter获取条目值

来自分类Dev

Python,Tkinter:如何使用线程防止tkinter gui mainloop崩溃

来自分类Dev

Python tkinter 使用变量和来自 GUI 的用户输入来运行代码

来自分类Dev

如何制作自动填充某些条目的Tkinter GUI

来自分类Dev

python3 tkinter gui没有响应

来自分类Dev

Tkinter GUI冻结

来自分类Dev

Tkinter GUI与进度栏

来自分类Dev

生成空的TKinter GUI

来自分类Dev

Tkinter gui 类

来自分类Dev

Tkinter gui图形

来自分类Dev

tkinter 避免 GUI 冻结

来自分类Dev

如何在python中使用Tkinter遍历标签中的列表?

来自分类Dev

使用Tkinter模块中的GUI“按钮”管理脚本执行

来自分类Dev

Python:使用Tkinter单选按钮从GUI添加/删除字段

来自分类Dev

如何使用Tkinter创建自动更新的GUI?

来自分类Dev

使用tkinter分配全局变量并销毁gui