Statuszeile und filtern von aktiven Adressen #9
@@ -5,11 +5,10 @@ import tkinter as tk
|
||||
from configparser import NoSectionError, NoOptionError
|
||||
from tkinter import messagebox
|
||||
from tkinter import ttk
|
||||
import json
|
||||
|
||||
from config import Config
|
||||
from connector import JSONConnector
|
||||
from windows import SettingsWindow, EditRecord, Window, show_error
|
||||
from windows import SettingsWindow, EditRecord, show_error
|
||||
|
||||
|
||||
class Application:
|
||||
@@ -93,8 +92,10 @@ class Application:
|
||||
scrollbar.pack(side=tk.LEFT, fill=tk.Y)
|
||||
|
||||
self.table.bind("<ButtonRelease-1>", self.mouse_click)
|
||||
self.table.bind("<Return>", self.mouse_click_double)
|
||||
self.table.bind("<Return>", self.enter_button)
|
||||
self.table.bind("<Double-1>", self.mouse_click_double)
|
||||
self.root.bind("<Up>", self.focus_table)
|
||||
self.root.bind("<Down>", self.focus_table)
|
||||
|
||||
# bottom status bar
|
||||
tk.Label(bottom_frame, textvariable=self.statusbar).pack(side=tk.LEFT)
|
||||
@@ -202,7 +203,10 @@ class Application:
|
||||
region = self.table.identify("region", event.x, event.y)
|
||||
match region:
|
||||
case "cell":
|
||||
self.click_on_cell()
|
||||
self.edit_selected_record()
|
||||
|
||||
def enter_button(self, event):
|
||||
self.edit_selected_record()
|
||||
|
||||
def click_on_header(self, event):
|
||||
column = self.table.identify_column(event.x)
|
||||
@@ -229,7 +233,9 @@ class Application:
|
||||
self.address_list = self.model.get_all_sorted_by(field, self.sort_order)
|
||||
self.populate_table(reload=False)
|
||||
|
||||
def click_on_cell(self):
|
||||
def edit_selected_record(self):
|
||||
if self.table.focus() is None or self.table.focus() == "":
|
||||
return
|
||||
self.current_record = int(self.table.focus())
|
||||
self.open_window_edit_records(self.current_record)
|
||||
|
||||
@@ -311,6 +317,16 @@ class Application:
|
||||
self.address_list.sort(key=lambda x: (x["firma"], x["name"]))
|
||||
self.populate_table()
|
||||
|
||||
def focus_table(self, event):
|
||||
first = self.table.get_children()[0]
|
||||
last = self.table.get_children()[-1]
|
||||
goto = last if event.keysym == "Up" else first
|
||||
if self.table.focus() == "":
|
||||
self.table.selection_set(goto)
|
||||
self.table.focus(goto)
|
||||
self.table.see(goto)
|
||||
self.table.focus_force()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
Application()
|
||||
|
||||
Reference in New Issue
Block a user