Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу сделать второе окно на втором экране на python/tkinter

Артур Сапаров Ученик (102), открыт 3 дня назад
Пишу небольшую программу на python/tkinter, и одна из функций должна открывать дублирующее окно на втором экране
Пробую находить размеры второго экрана и смещать дублирующее окно через get_monitor, все работает, но с ним почему- то главное окно все время уменьшается, в чем может быть причина?
1 ответ
Анонимус Мудрец (16042) 3 дня назад
  • Изменение цвета фона главного окна: Позволяет пользователю менять цвет фона.
  • Сохранение текста в файл: Позволяет пользователю сохранять текст из текстового поля в файл.
  • Загрузка текста из файла: Позволяет загружать текст из файла в текстовое поле.
  • Кнопка "Сброс": Сбрасывает содержимое текстового поля.
  • Отображение информации о приложении: Открывает окно с информацией о приложении.

 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()
Похожие вопросы