mirror of
https://github.com/norohind/EDMC_SpanshRouter.git
synced 2025-04-19 10:37:36 +03:00
Add placholder
This commit is contained in:
parent
e91d9a8ada
commit
c015c3628f
@ -9,23 +9,33 @@ import os
|
||||
import requests
|
||||
|
||||
class AutoCompleter(Entry):
|
||||
def __init__(self, parent, **kwargs):
|
||||
def __init__(self, parent, placeholder, **kw):
|
||||
Entry.__init__(self, parent, **kw)
|
||||
self.parent = parent
|
||||
Entry.__init__(self, parent, **kwargs)
|
||||
self.placeholder = placeholder
|
||||
self.placeholder_color = "grey"
|
||||
self.default_fg_color = self['fg']
|
||||
|
||||
self.bind("<FocusIn>", self.foc_in)
|
||||
self.bind("<FocusOut>", self.foc_out)
|
||||
|
||||
self.lb = Listbox(self.parent)
|
||||
self.lb_up = False
|
||||
self.has_selected = False
|
||||
self.queue = Queue.Queue()
|
||||
|
||||
self.var = self["textvariable"]
|
||||
if self.var == '':
|
||||
self.var = self["textvariable"] = StringVar()
|
||||
self.var = self["textvariable"] = StringVar()
|
||||
|
||||
self.var.trace('w', self.changed)
|
||||
self.put_placeholder()
|
||||
self.bind("<Any-Key>", self.keypressed)
|
||||
|
||||
|
||||
self.update_me()
|
||||
|
||||
def put_placeholder(self):
|
||||
self['fg'] = self.placeholder_color
|
||||
self.insert(0, self.placeholder)
|
||||
|
||||
def keypressed(self, event):
|
||||
key=event.keysym
|
||||
if key == 'Down':
|
||||
@ -38,6 +48,15 @@ class AutoCompleter(Entry):
|
||||
elif key == 'Escape' and self.lb_up:
|
||||
self.hide_list()
|
||||
|
||||
def foc_in(self, *args):
|
||||
if self['fg'] == self.placeholder_color or self.get() == self.placeholder:
|
||||
self.delete('0', 'end')
|
||||
self['fg'] = self.default_fg_color
|
||||
|
||||
def foc_out(self, *args):
|
||||
if not self.get():
|
||||
self.put_placeholder()
|
||||
|
||||
def changed(self, name, index, mode):
|
||||
if self.var.get().__len__() < 3 and self.lb_up or self.has_selected:
|
||||
self.hide_list
|
||||
@ -108,7 +127,7 @@ class AutoCompleter(Entry):
|
||||
|
||||
def query_systems(self):
|
||||
inp = self.var.get()
|
||||
if inp.__len__() >= 3:
|
||||
if inp != self.placeholder and inp.__len__() >= 3:
|
||||
url = "https://spansh.co.uk/api/systems?"
|
||||
results = requests.get(url,
|
||||
params={'q': inp},
|
||||
@ -138,6 +157,6 @@ class AutoCompleter(Entry):
|
||||
if __name__ == '__main__':
|
||||
root = Tk()
|
||||
|
||||
widget = AutoCompleter(root)
|
||||
widget = AutoCompleter(root, "Test")
|
||||
widget.grid(row=0)
|
||||
root.mainloop()
|
Loading…
x
Reference in New Issue
Block a user