mirror of
https://github.com/norohind/EDMC_SpanshRouter.git
synced 2026-10-22 18:02:08 +03:00
Add PlaceHolder class to use on an Entry widget
This commit is contained in:
1 parent
c015c3628f
commit
a671bdcb66
3 files changed
+40
-23
No files matched your search
+6
-23
@@ -7,35 +7,27 @@ from time import sleep
|
||||
import json
|
||||
import os
|
||||
import requests
|
||||
from PlaceHolder import PlaceHolder
|
||||
|
||||
class AutoCompleter(Entry):
|
||||
class AutoCompleter(Entry, PlaceHolder):
|
||||
def __init__(self, parent, placeholder, **kw):
|
||||
Entry.__init__(self, parent, **kw)
|
||||
self.parent = parent
|
||||
self.placeholder = placeholder
|
||||
self.placeholder_color = "grey"
|
||||
self.default_fg_color = self['fg']
|
||||
self.var = self["textvariable"] = StringVar()
|
||||
self.var.trace('w', self.changed)
|
||||
|
||||
self.bind("<FocusIn>", self.foc_in)
|
||||
self.bind("<FocusOut>", self.foc_out)
|
||||
self.parent = parent
|
||||
|
||||
self.lb = Listbox(self.parent)
|
||||
self.lb_up = False
|
||||
self.has_selected = False
|
||||
self.queue = Queue.Queue()
|
||||
|
||||
self.var = self["textvariable"] = StringVar()
|
||||
PlaceHolder.__init__(self, placeholder)
|
||||
|
||||
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':
|
||||
@@ -48,15 +40,6 @@ 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
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
from config import config
|
||||
|
||||
class PlaceHolder():
|
||||
def __init__(self, placeholder, **kw):
|
||||
self.placeholder = placeholder
|
||||
self.placeholder_color = "grey"
|
||||
self.default_fg_color = config.get('dark_text')
|
||||
|
||||
self.bind("<FocusIn>", self.foc_in)
|
||||
self.bind("<FocusOut>", self.foc_out)
|
||||
|
||||
self.put_placeholder()
|
||||
|
||||
def put_placeholder(self):
|
||||
self['fg'] = self.placeholder_color
|
||||
self.insert(0, self.placeholder)
|
||||
|
||||
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()
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env python2
|
||||
|
||||
from Tkinter import *
|
||||
from PlaceHolder import PlaceHolder
|
||||
|
||||
class PlaceHolderEntry(Entry, PlaceHolder):
|
||||
def __init__(self, parent, placeholder, **kw):
|
||||
Entry.__init__(self, parent, **kw)
|
||||
PlaceHolder.__init__(self, placeholder)
|
||||
Reference in new issue
Block a user