Gui ClientΒΆ
from tkinter import Entry, Label, Tk
from salve import AUTOCOMPLETE, IPC, Response
def main():
# Create context for IPC
context = IPC()
# Create window
root = Tk()
def create_request(_) -> None:
context.update_file("test", entry.get())
context.request(
AUTOCOMPLETE,
expected_keywords=[],
file="test",
current_word=entry.get()[-1],
)
# Create entry and label
entry = Entry(root)
entry.pack()
entry.bind("<Return>", create_request)
label = Label(root, text="")
label.pack()
def loop() -> None:
output: Response | None = context.get_response(AUTOCOMPLETE) # type: ignore
data: list[str] = [""]
if output is not None:
data: list[str] = output["result"] # type: ignore
if not data:
data = [""]
label.configure(text=str(data))
root.after(50, loop)
root.after_idle(loop)
root.mainloop()
context.kill_IPC()
if __name__ == "__main__":
main()
See the file example file here.