Egy egyszerű, de teljesen működőképes szövegszerkesztő szoftver létrehozásához a Python beépített grafikus felhasználói felület (GUI) könyvtárát, a Tkinter-t használhatjuk. Az alábbi kód egy olyan alapvető szerkesztőt valósít meg, amellyel fájlokat hozhatsz létre, nyithatsz meg, szerkeszthetsz és menthetsz el.
-----------------
import tkinter as tk
from tkinter import filedialog, messagebox
class Szovegszerkeszto:
def __init__(self, root):
self.root = root
self.root.title("Egyszerű Szövegszerkesztő")
self.root.geometry("600x400")
# Szövegbeviteli mező és görgetősáv (Scrollbar)
self.szoveg_doboz = tk.Text(self.root, wrap="word", undo=True)
self.szoveg_doboz.pack(fill="both", expand=True)
self.gorgeto = tk.Scrollbar(self.szoveg_doboz)
self.gorgeto.pack(side="right", fill="y")
self.gorgeto.config(command=self.szoveg_doboz.yview)
self.szoveg_doboz.config(yscrollcommand=self.gorgeto.set)
# Fájl elérési útvonala (ha már mentve van)
self.aktualis_fajl = None
# Menüsor létrehozása
menu_sor = tk.Menu(self.root)
self.root.config(menu=menu_sor)
# Fájl menü
fajl_menu = tk.Menu(menu_sor, tearoff=False)
menu_sor.add_cascade(label="Fájl", menu=fajl_menu)
fajl_menu.add_command(label="Új", command=self.uj_fajl)
fajl_menu.add_command(label="Megnyitás...", command=self.megnyitas)
fajl_menu.add_command(label="Mentés", command=self.mentes)
fajl_menu.add_command(label="Mentés másként...", command=self.mentes_maskent)
fajl_menu.add_separator()
fajl_menu.add_command(label="Kilépés", command=self.root.quit)
def uj_fajl(self):
self.szoveg_doboz.delete(1.0, tk.END)
self.aktualis_fajl = None
self.root.title("Egyszerű Szövegszerkesztő - Új fájl")
def megnyitas(self):
fajl_utvonal = filedialog.askopenfilename(defaultextension=".txt",
filetypes=[("Szöveges fájlok", "*.txt"), ("Minden fájl", "*.*")])
if fajl_utvonal:
try:
with open(fajl_utvonal, "r", encoding="utf-8") as fajl:
self.szoveg_doboz.delete(1.0, tk.END)
self.szoveg_doboz.insert(tk.END, fajl.read())
self.aktualis_fajl = fajl_utvonal
self.root.title(f"Egyszerű Szövegszerkesztő - {fajl_utvonal}")
except Exception as e:
messagebox.showerror("Hiba", f"Nem sikerült megnyitni a fájlt: {e}")
def mentes(self):
if self.aktualis_fajl:
try:
with open(self.aktualis_fajl, "w", encoding="utf-8") as fajl:
fajl.write(self.szoveg_doboz.get(1.0, tk.END))
messagebox.showinfo("Mentve", "A fájl sikeresen mentve!")
except Exception as e:
messagebox.showerror("Hiba", f"Nem sikerült menteni a fájlt: {e}")
else:
self.mentes_maskent()
def mentes_maskent(self):
fajl_utvonal = filedialog.asksaveasfilename(defaultextension=".txt",
filetypes=[("Szöveges fájlok", "*.txt"), ("Minden fájl", "*.*")])
if fajl_utvonal:
self.aktualis_fajl = fajl_utvonal
self.mentes()
self.root.title(f"Egyszerű Szövegszerkesztő - {fajl_utvonal}")
if __name__ == "__main__":
fo_ablak = tk.Tk()
alkalmazas = Szovegszerkeszto(fo_ablak)
fo_ablak.mainloop()
------------
Nincsenek megjegyzések:
Megjegyzés küldése