Add PlaceHolder class to use on an Entry widget

This commit is contained in:
CMDR-Kiel42 committed 2019-07-17 01:00:44 +02:00
1 parent c015c3628f
commit a671bdcb66
3 files changed
+40 -23

No files matched your search

+6 -23
View File
@@ -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
+25
View File
@@ -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()
+9
View File
@@ -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)