- Изменение цвета фона главного окна: Позволяет пользователю менять цвет фона.
- Сохранение текста в файл: Позволяет пользователю сохранять текст из текстового поля в файл.
- Загрузка текста из файла: Позволяет загружать текст из файла в текстовое поле.
- Кнопка "Сброс": Сбрасывает содержимое текстового поля.
- Отображение информации о приложении: Открывает окно с информацией о приложении.
import tkinter as tk
from tkinter import Toplevel, filedialog, messagebox
def create_duplicate_window():
screen_width = root.winfo_screenwidth()
duplicate_window = Toplevel(root)
duplicate_window.title("Дублирующее окно")
duplicate_window.geometry(f"{root.winfo_width()}x{root.winfo_height()}+{screen_width}+0")
duplicate_window.configure(bg='lightblue')
label = tk.Label(duplicate_window, text="Это дублирующее окно", bg='lightblue')
label.pack(padx=20, pady=20)
def change_background_color():
color = color_entry.get()
try:
root.configure(bg=color)
except tk.TclError:
messagebox.showerror("Ошибка", "Неверный цвет!")
def save_text_to_file():
text = text_area.get("1.0", tk.END)
file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text files", "*.txt")])
if file_path:
with open(file_path, 'w') as file:
file.write(text)
def load_text_from_file():
file_path = filedialog.askopenfilename(filetypes=[("Text files", "*.txt")])
if file_path:
with open(file_path, 'r') as file:
text_area.delete("1.0", tk.END) # Очищаем текстовое поле
text_area.insert(tk.END, file.read()) # Вставляем текст из файла
def reset_text_area():
text_area.delete("1.0", tk.END) # Очищаем текстовое поле
def show_info():
messagebox.showinfo("Информация о приложении", "Это простое приложение на Tkinter.\nВерсия 1.0")
# Создаем главное окно
root = tk.Tk()
root.title("Главное окно")
root.geometry("400x400")
# Текстовое поле
text_area = tk.Text(root, height=10, width=50)
text_area.pack(pady=10)
# Кнопка для создания дублирующего окна
button_duplicate = tk.Button(root, text="Открыть дублирующее окно", command=create_duplicate_window)
button_duplicate.pack(pady=5)
# Поле для ввода цвета фона
color_entry = tk.Entry(root)
color_entry.pack(pady=5)
color_button = tk.Button(root, text="Изменить цвет фона", command=change_background_color)
color_button.pack(pady=5)
# Кнопки для работы с текстом
save_button = tk.Button(root, text="Сохранить текст в файл", command=save_text_to_file)
save_button.pack(pady=5)
load_button = tk.Button(root, text="Загрузить текст из файла", command=load_text_from_file)
load_button.pack(pady=5)
reset_button = tk.Button(root, text="Сбросить текст", command=reset_text_area)
reset_button.pack(pady=5)
info_button = tk.Button(root, text="Информация о приложении", command=show_info)
info_button.pack(pady=5)
root.mainloop()
Пробую находить размеры второго экрана и смещать дублирующее окно через get_monitor, все работает, но с ним почему- то главное окно все время уменьшается, в чем может быть причина?