我正在使用具有一些简单字段的 tkinter 构建一个 GUI。我想出了如何使用 Entry 小部件的 textvariable 参数为它们默认值(我将这些值从 .pickle 文件加载到字典),但是我构建了一个字段以在用户输入值时使用自动完成. 这是一个单独的类,我使用了在这里找到的代码。
我已经尝试了很多方法来在启动应用程序时加载这个小部件中的值,比如返回值和使用 set() 方法,但我没有成功。我要么得到错误,要么什么也没发生。我在小部件中输入的值确实会成功保存到我的泡菜文件中。
我还在用python学习面向对象编程,所以请放轻松。那么如何修改下面的代码以显示默认值?
from Tkinter import *
import re
lista = ['a', 'actions', 'additional', 'also', 'an', 'and', 'angle', 'are', 'as', 'be', 'bind','bracket', 'brackets', 'button', 'can', 'cases', 'configure', 'course', 'detail', 'enter', 'event', 'events', 'example', 'field', 'fields', 'for', 'give', 'important', 'in', 'information', 'is', 'it', 'just', 'key', 'keyboard', 'kind', 'leave', 'left', 'like', 'manager', 'many', 'match', 'modifier', 'most', 'of', 'or', 'others', 'out', 'part', 'simplify', 'space', 'specifier', 'specifies', 'string;', 'that', 'the', 'there', 'to', 'type', 'unless', 'use', 'used', 'user', 'various', 'ways', 'we', 'window', 'wish', 'you']
class AutocompleteEntry(Entry):
def __init__(self, lista, *args, **kwargs):
Entry.__init__(self, *args, **kwargs)
self.lista = lista
self.var = self["textvariable"]
if self.var == '':
self.var = self["textvariable"] = StringVar()
self.var.trace('w', self.changed)
self.bind("<Right>", self.selection)
self.bind("<Up>", self.up)
self.bind("<Down>", self.down)
self.lb_up = False
青春有我
小唯快跑啊
相关分类