import tkinter as tk
from tkinter import messagebox
# Информация о предприятии
COMPANY_NAME = "ООО «Администрация»"
COMPANY_ADDRESS = "г. Москва, ул. Центральная, д. 1"
# Справочник: должность -> кабинет
DIRECTORY = {
"бухгалтер": "Бухгалтер - кабинет №101",
"секретарь": "Секретарь - кабинет №102",
"программист": "Программист - кабинет №103"
}
def show_company_info():
"""Показать информацию о предприятии"""
messagebox.showinfo(
"Информация о предприятии",
f"Наименование: {COMPANY_NAME}\nЮридический адрес: {COMPANY_ADDRESS}"
)
def search_direction():
"""Поиск по направлению"""
query = entry.get().strip().lower()
if not query:
messagebox.showwarning("Ошибка ввода", "Поле ввода пустое. Введите должность.")
return
if query in DIRECTORY:
result = DIRECTORY[query]
label_result.config(text=result, fg="green")
else:
label_result.config(
text=f"Направление «{query}» не найдено. Доступно: бухгалтер, секретарь, программист",
fg="red"
)
def clear_input():
"""Очистить поле ввода и результат"""
entry.delete(0, tk.END)
label_result.config(text="Результат появится здесь", fg="black")
entry.focus()
# Создание главного окна
root = tk.Tk()
root.title("Справочная система администрации")
root.geometry("550x350")
root.resizable(False, False)
# Заголовок
title_label = tk.Label(
root,
text="Справочная система предприятия",
font=("Arial", 16, "bold"),
pady=10
)
title_label.pack()
# Информация о предприятии
info_frame = tk.Frame(root)
info_frame.pack(pady=5)
info_label = tk.Label(
info_frame,
text=f"{COMPANY_NAME} | {COMPANY_ADDRESS}",
font=("Arial", 10),
fg="blue"
)
info_label.pack(side=tk.LEFT)
info_button = tk.Button(
info_frame,
text="Подробнее",
command=show_company_info,
cursor="hand2"
)
info_button.pack(side=tk.LEFT, padx=10)
# Разделитель
separator = tk.Label(root, text="=" * 50, fg="gray")
separator.pack(pady=5)
# Блок поиска
search_label = tk.Label(
root,
text="Введите направление работы:",
font=("Arial", 12)
)
search_label.pack()
available_label = tk.Label(
root,
text="Доступно: бухгалтер | секретарь | программист",
font=("Arial", 9),
fg="gray"
)
available_label.pack()
entry = tk.Entry(root, width=40, font=("Arial", 12))
entry.pack(pady=10)
entry.focus()
# Кнопки
button_frame = tk.Frame(root)
button_frame.pack(pady=5)
search_button = tk.Button(
button_frame,
text="Найти",
command=search_direction,
bg="#4CAF50",
fg="white",
padx=20,
pady=5,
cursor="hand2"
)
search_button.pack(side=tk.LEFT, padx=10)
clear_button = tk.Button(
button_frame,
text="Очистить",
command=clear_input,
bg="#f44336",
fg="white",
padx=20,
pady=5,
cursor="hand2"
)
clear_button.pack(side=tk.LEFT, padx=10)
# Результат
result_frame = tk.Frame(root, bd=2, relief=tk.SUNKEN, padx=10, pady=10)
result_frame.pack(pady=20, fill=tk.X, padx=20)
label_result = tk.Label(
result_frame,
text="Результат появится здесь",
font=("Arial", 11),
wraplength=450
)
label_result.pack()
# Запуск приложения
root.mainloop()