feat: выпадающие списки открываются кликом в любом месте поля (не только по стрелке)
Добавлен обработчик _combo_open для всех комбобоксов: клик по полю раскрывает список, не нужно тянуть курсор в правый угол к стрелке.
This commit is contained in:
@@ -796,6 +796,7 @@ class DokoGenApp:
|
||||
# Сфера деятельности — словарик + выпадающий список
|
||||
ttk.Label(main_frame, text="Сфера деятельности:").grid(row=1, column=0, sticky=tk.W, pady=2)
|
||||
self.is_sphere_combo = ttk.Combobox(main_frame, width=68, state='readonly')
|
||||
self.is_sphere_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_sphere_combo.grid(row=1, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
import json as _json
|
||||
@@ -808,6 +809,7 @@ class DokoGenApp:
|
||||
# Тип объекта — словарик + выпадающий список
|
||||
ttk.Label(main_frame, text="Тип объекта:").grid(row=2, column=0, sticky=tk.W, pady=2)
|
||||
self.is_object_type_combo = ttk.Combobox(main_frame, width=68, state='readonly')
|
||||
self.is_object_type_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_object_type_combo.grid(row=2, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
_ot = os.path.join(os.path.dirname(__file__), 'dictionaries', 'object_types.json')
|
||||
@@ -819,6 +821,7 @@ class DokoGenApp:
|
||||
# Архитектура объекта — словарик + выпадающий список
|
||||
ttk.Label(main_frame, text="Архитектура объекта:").grid(row=3, column=0, sticky=tk.W, pady=2)
|
||||
self.is_architecture_combo = ttk.Combobox(main_frame, width=68, state='readonly')
|
||||
self.is_architecture_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_architecture_combo.grid(row=3, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
_ar = os.path.join(os.path.dirname(__file__), 'dictionaries', 'architectures.json')
|
||||
@@ -830,6 +833,7 @@ class DokoGenApp:
|
||||
# Типовой отраслевой объект КИИ — словарик + выпадающий список
|
||||
ttk.Label(main_frame, text="Типовой отраслевой объект КИИ:").grid(row=4, column=0, sticky=tk.W, pady=2)
|
||||
self.is_typical_object_combo = ttk.Combobox(main_frame, width=68, state='readonly')
|
||||
self.is_typical_object_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_typical_object_combo.grid(row=4, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
_to = os.path.join(os.path.dirname(__file__), 'dictionaries', 'typical_objects.json')
|
||||
@@ -868,6 +872,7 @@ class DokoGenApp:
|
||||
# Категория сети — словарик
|
||||
ttk.Label(net_frame, text="Категория сети электросвязи:").grid(row=1, column=0, sticky=tk.W, pady=2)
|
||||
self.is_net_category_combo = ttk.Combobox(net_frame, width=68, state='readonly')
|
||||
self.is_net_category_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_net_category_combo.grid(row=1, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
import json as _json
|
||||
@@ -885,6 +890,7 @@ class DokoGenApp:
|
||||
# Цель взаимодействия — словарик
|
||||
ttk.Label(net_frame, text="Цель взаимодействия с сетью электросвязи:").grid(row=3, column=0, sticky=tk.W, pady=2)
|
||||
self.is_net_purpose_combo = ttk.Combobox(net_frame, width=68, state='readonly')
|
||||
self.is_net_purpose_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_net_purpose_combo.grid(row=3, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
_np = os.path.join(os.path.dirname(__file__), 'dictionaries', 'net_purposes.json')
|
||||
@@ -896,6 +902,7 @@ class DokoGenApp:
|
||||
# Способ взаимодействия — словарик
|
||||
ttk.Label(net_frame, text="Способ взаимодействия (тип доступа):").grid(row=4, column=0, sticky=tk.W, pady=2)
|
||||
self.is_net_method_combo = ttk.Combobox(net_frame, width=68, state='readonly')
|
||||
self.is_net_method_combo.bind('<Button-1>', self._combo_open)
|
||||
self.is_net_method_combo.grid(row=4, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
try:
|
||||
_nm = os.path.join(os.path.dirname(__file__), 'dictionaries', 'net_methods.json')
|
||||
@@ -1642,6 +1649,14 @@ class DokoGenApp:
|
||||
except Exception as e:
|
||||
messagebox.showerror("Ошибка", f"Не удалось загрузить словарь: {e}")
|
||||
|
||||
def _combo_open(self, event):
|
||||
"""Клик в любом месте комбобокса раскрывает список (не только по стрелке)."""
|
||||
try:
|
||||
event.widget.event_generate('<Down>')
|
||||
except Exception:
|
||||
pass
|
||||
return 'break'
|
||||
|
||||
# ==================== ОКВЭД ====================
|
||||
def _load_okved_dict(self):
|
||||
"""Загружает словарь ОКВЭД (dictionaries/okved.json)."""
|
||||
|
||||
Reference in New Issue
Block a user