Correzione stile PEP8 e refusi
This commit is contained in:
parent
dd1059a7b4
commit
48650d1c3d
133
Dropchat.py
133
Dropchat.py
@ -1,6 +1,7 @@
|
|||||||
import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog
|
import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog
|
||||||
import tempfile, json, datetime, re, sys
|
import tempfile, json, datetime, re, sys
|
||||||
|
|
||||||
|
|
||||||
class Text(tkinter.Text):
|
class Text(tkinter.Text):
|
||||||
"""
|
"""
|
||||||
Tkinter Text Widget
|
Tkinter Text Widget
|
||||||
@ -9,11 +10,11 @@ class Text(tkinter.Text):
|
|||||||
"""
|
"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
tkinter.Text.__init__(self, *args, **kwargs)
|
tkinter.Text.__init__(self, *args, **kwargs)
|
||||||
|
|
||||||
def evidenzia(self, pattern, tag, inizio="1.0", fine="end", regex=True):
|
def evidenzia(self, pattern, tag, inizio="1.0", fine="end", regex=True):
|
||||||
"""
|
"""
|
||||||
Evidenzia il testo selezionato da "pattern" e gli assegna
|
Evidenzia il testo selezionato da "pattern" e gli assegna
|
||||||
il tag "tag". Speficicare "inzio" e "fine" per ristringere
|
il tag "tag". Specificare "inizio" e "fine" per ristringere
|
||||||
il campo della ricerca e regex=False se non si utilizza un
|
il campo della ricerca e regex=False se non si utilizza un
|
||||||
espressione regolare.
|
espressione regolare.
|
||||||
"""
|
"""
|
||||||
@ -25,7 +26,7 @@ class Text(tkinter.Text):
|
|||||||
occorrenze = tkinter.IntVar()
|
occorrenze = tkinter.IntVar()
|
||||||
while True:
|
while True:
|
||||||
indice = self.search(
|
indice = self.search(
|
||||||
pattern,
|
pattern,
|
||||||
"matchEnd",
|
"matchEnd",
|
||||||
"searchLimit",
|
"searchLimit",
|
||||||
count=occorrenze,
|
count=occorrenze,
|
||||||
@ -37,6 +38,7 @@ class Text(tkinter.Text):
|
|||||||
self.mark_set("matchEnd", "%s+%sc" % (indice, occorrenze.get()))
|
self.mark_set("matchEnd", "%s+%sc" % (indice, occorrenze.get()))
|
||||||
self.tag_add(tag, "matchStart", "matchEnd")
|
self.tag_add(tag, "matchStart", "matchEnd")
|
||||||
|
|
||||||
|
|
||||||
class Applicazione(tkinter.Frame):
|
class Applicazione(tkinter.Frame):
|
||||||
"""
|
"""
|
||||||
Classe dell'applicazione
|
Classe dell'applicazione
|
||||||
@ -45,7 +47,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
def __init__(self, finestra):
|
def __init__(self, finestra):
|
||||||
tkinter.Frame.__init__(self, finestra)
|
tkinter.Frame.__init__(self, finestra)
|
||||||
finestra.iconify()
|
finestra.iconify()
|
||||||
|
|
||||||
#Variabili
|
#Variabili
|
||||||
self.temp = tempfile.TemporaryFile(mode="w+t")
|
self.temp = tempfile.TemporaryFile(mode="w+t")
|
||||||
self.testo = tkinter.StringVar()
|
self.testo = tkinter.StringVar()
|
||||||
@ -54,28 +56,28 @@ class Applicazione(tkinter.Frame):
|
|||||||
"parent": finestra,
|
"parent": finestra,
|
||||||
"filetypes": [("text files", ".txt")],
|
"filetypes": [("text files", ".txt")],
|
||||||
"defaultextension": ".txt",
|
"defaultextension": ".txt",
|
||||||
"initialfile": "file.txt"
|
"initialfile": "file.txt"
|
||||||
}
|
}
|
||||||
self.opzionichat = {
|
self.opzionichat = {
|
||||||
"font": ("Monaco", 13),
|
"font": ("Monaco", 13),
|
||||||
"borderwidth": 2,
|
"borderwidth": 2,
|
||||||
"highlightthickness": 0
|
"highlightthickness": 0
|
||||||
}
|
}
|
||||||
|
|
||||||
#Gestione delle preferenze
|
#Gestione delle preferenze
|
||||||
try:
|
try:
|
||||||
self.preferenze = json.load(open("preferenze.json"))
|
self.preferenze = json.load(open("preferenze.json"))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
tkinter.messagebox.showwarning(
|
tkinter.messagebox.showwarning(
|
||||||
"Dropchat",
|
"Dropchat",
|
||||||
"File delle preferenze non trovato!",
|
"File delle preferenze non trovato!",
|
||||||
detail="Preferenze di default ricostruite."
|
detail="Preferenze di default ricostruite."
|
||||||
)
|
)
|
||||||
self.creapreferenze()
|
self.creapreferenze()
|
||||||
|
|
||||||
#Gestione della finestra
|
#Gestione della finestra
|
||||||
finestra.geometry(self.preferenze["Geometria"])
|
finestra.geometry(self.preferenze["Geometria"])
|
||||||
finestra.configure(background = "#a8a8a8")
|
finestra.configure(background="#a8a8a8")
|
||||||
finestra.columnconfigure(1, weight=1)
|
finestra.columnconfigure(1, weight=1)
|
||||||
finestra.rowconfigure(0, weight=1)
|
finestra.rowconfigure(0, weight=1)
|
||||||
finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
|
finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
|
||||||
@ -86,7 +88,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
self.widgets()
|
self.widgets()
|
||||||
self.leggi()
|
self.leggi()
|
||||||
|
|
||||||
#Gestione delle ultime conversazioni
|
#Gestione delle ultime conversazioni
|
||||||
try:
|
try:
|
||||||
self.cancellanontrovati()
|
self.cancellanontrovati()
|
||||||
@ -94,15 +96,15 @@ class Applicazione(tkinter.Frame):
|
|||||||
except IndexError:
|
except IndexError:
|
||||||
risposta = tkinter.messagebox.askquestion(
|
risposta = tkinter.messagebox.askquestion(
|
||||||
"Dropchat",
|
"Dropchat",
|
||||||
"Nessuna conversazione trovata.",
|
"Nessuna conversazione trovata.",
|
||||||
detail="Crearne una nuova ?"
|
detail="Crearne una nuova ?"
|
||||||
)
|
)
|
||||||
if risposta == "yes":
|
if risposta == "yes":
|
||||||
self.nuovofile()
|
self.nuovofile()
|
||||||
|
|
||||||
#Loop principale
|
#Loop principale
|
||||||
self.loop()
|
self.loop()
|
||||||
|
|
||||||
#Widget della finestra
|
#Widget della finestra
|
||||||
def widgets(self):
|
def widgets(self):
|
||||||
"""
|
"""
|
||||||
@ -110,10 +112,10 @@ class Applicazione(tkinter.Frame):
|
|||||||
"""
|
"""
|
||||||
self.menubar = tkinter.Menu(finestra)
|
self.menubar = tkinter.Menu(finestra)
|
||||||
self.chat = Text(
|
self.chat = Text(
|
||||||
finestra,
|
finestra,
|
||||||
width=100,
|
width=100,
|
||||||
height=30,
|
height=30,
|
||||||
relief="sunken",
|
relief="sunken",
|
||||||
insertbackground="#fff",
|
insertbackground="#fff",
|
||||||
**self.opzionichat
|
**self.opzionichat
|
||||||
)
|
)
|
||||||
@ -122,7 +124,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
width=20,
|
width=20,
|
||||||
borderwidth=0,
|
borderwidth=0,
|
||||||
background="#dce0e8"
|
background="#dce0e8"
|
||||||
)
|
)
|
||||||
self.casella = tkinter.Entry(
|
self.casella = tkinter.Entry(
|
||||||
finestra,
|
finestra,
|
||||||
textvariable=self.testo,
|
textvariable=self.testo,
|
||||||
@ -131,22 +133,22 @@ class Applicazione(tkinter.Frame):
|
|||||||
self.chat.grid(column=1, row=0, sticky="nswe", pady=(6, 3), padx=6)
|
self.chat.grid(column=1, row=0, sticky="nswe", pady=(6, 3), padx=6)
|
||||||
self.casella.grid(column=1, row=1, sticky="nswe", pady=(3, 6), padx=6)
|
self.casella.grid(column=1, row=1, sticky="nswe", pady=(3, 6), padx=6)
|
||||||
self.sidebar.grid(column=0, row=0, sticky="nswe", rowspan=2)
|
self.sidebar.grid(column=0, row=0, sticky="nswe", rowspan=2)
|
||||||
|
|
||||||
#Bindings
|
#Bindings
|
||||||
self.chat.bind("<KeyPress>", "break")
|
self.chat.bind("<KeyPress>", "break")
|
||||||
self.sidebar.bind("<Double-Button-1>", self.cambiafile)
|
self.sidebar.bind("<Double-Button-1>", self.cambiafile)
|
||||||
self.sidebar.bind("<Button-2>", self.mostramenu)
|
self.sidebar.bind("<Button-2>", self.mostramenu)
|
||||||
self.casella.bind("<Return>", self.scrivi)
|
self.casella.bind("<Return>", self.scrivi)
|
||||||
|
|
||||||
#Barra dei menu
|
#Barra dei menu
|
||||||
self.menubar = tkinter.Menu(self)
|
self.menubar = tkinter.Menu(self)
|
||||||
menu = tkinter.Menu(self.menubar)
|
menu = tkinter.Menu(self.menubar)
|
||||||
|
|
||||||
#Primo menu
|
#Primo menu
|
||||||
self.menubar.add_cascade(label = "Conversazione", menu=menu)
|
self.menubar.add_cascade(label="Conversazione", menu=menu)
|
||||||
menu.add_command(label="Nuovo file", command=self.nuovofile)
|
menu.add_command(label="Nuovo file", command=self.nuovofile)
|
||||||
menu.add_command(label="Apri file...", command=self.aprifile)
|
menu.add_command(label="Apri file...", command=self.aprifile)
|
||||||
|
|
||||||
#Secondo menu
|
#Secondo menu
|
||||||
menu = tkinter.Menu(self.menubar)
|
menu = tkinter.Menu(self.menubar)
|
||||||
self.menubar.add_cascade(label="Profilo", menu=menu)
|
self.menubar.add_cascade(label="Profilo", menu=menu)
|
||||||
@ -173,16 +175,16 @@ class Applicazione(tkinter.Frame):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
#Terzo menu
|
#Terzo menu
|
||||||
menu = tkinter.Menu(self.menubar)
|
menu = tkinter.Menu(self.menubar)
|
||||||
self.menubar.add_cascade(label="Modifica", menu = menu)
|
self.menubar.add_cascade(label="Modifica", menu=menu)
|
||||||
menu.add_command(
|
menu.add_command(
|
||||||
label="Taglia",
|
label="Taglia",
|
||||||
command=lambda: finestra.focus_get().event_generate("<<Cut>>")
|
command=lambda: finestra.focus_get().event_generate("<<Cut>>")
|
||||||
)
|
)
|
||||||
menu.add_command(
|
menu.add_command(
|
||||||
label="Copia",
|
label="Copia",
|
||||||
command=lambda: finestra.focus_get().event_generate("<<Copy>>")
|
command=lambda: finestra.focus_get().event_generate("<<Copy>>")
|
||||||
)
|
)
|
||||||
menu.add_command(
|
menu.add_command(
|
||||||
@ -190,15 +192,16 @@ class Applicazione(tkinter.Frame):
|
|||||||
command=lambda: finestra.focus_get().event_generate("<<Paste>>")
|
command=lambda: finestra.focus_get().event_generate("<<Paste>>")
|
||||||
)
|
)
|
||||||
finestra.config(menu=self.menubar)
|
finestra.config(menu=self.menubar)
|
||||||
|
|
||||||
#Menu contestuale 1
|
#Menu contestuale 1
|
||||||
self.menu1 = tkinter.Menu(self)
|
self.menu1 = tkinter.Menu(self)
|
||||||
self.menu1.add_command(
|
self.menu1.add_command(
|
||||||
label="Apri",
|
label="Apri",
|
||||||
command=self.cambiafile
|
command=self.cambiafile
|
||||||
)
|
)
|
||||||
self.menu1.add_command(label="Cancella",
|
self.menu1.add_command(
|
||||||
command=self.cancellafile
|
label="Cancella",
|
||||||
|
command=self.cancellafile
|
||||||
)
|
)
|
||||||
self.menu1.add_separator()
|
self.menu1.add_separator()
|
||||||
self.menu1.add_command(
|
self.menu1.add_command(
|
||||||
@ -207,28 +210,28 @@ class Applicazione(tkinter.Frame):
|
|||||||
)
|
)
|
||||||
self.menu1.add_command(
|
self.menu1.add_command(
|
||||||
label="Ricarica",
|
label="Ricarica",
|
||||||
command=lambda: self.sidebar.delete(0,"end")
|
command=lambda: self.sidebar.delete(0, "end")
|
||||||
)
|
)
|
||||||
|
|
||||||
#Menu contestuale 2
|
#Menu contestuale 2
|
||||||
self.menu2 = tkinter.Menu(self)
|
self.menu2 = tkinter.Menu(self)
|
||||||
self.menu2.add_command(
|
self.menu2.add_command(
|
||||||
label="Nuovo file",
|
label="Nuovo file",
|
||||||
command=self.nuovofile
|
command=self.nuovofile
|
||||||
)
|
)
|
||||||
self.menu2.add_command(
|
self.menu2.add_command(
|
||||||
label="Ricarica",
|
label="Ricarica",
|
||||||
command=lambda: self.sidebar.delete(0,"end")
|
command=lambda: self.sidebar.delete(0, "end")
|
||||||
)
|
)
|
||||||
|
|
||||||
def leggi(self):
|
def leggi(self):
|
||||||
"""Legge il file corrente dal buffer e lo scrive nella chat"""
|
"""Legge il file corrente dal buffer e lo scrive nella chat"""
|
||||||
self.aggiorna()
|
self.aggiorna()
|
||||||
self.temp.seek(0)
|
self.temp.seek(0)
|
||||||
self.chat.delete(0.0,"end")
|
self.chat.delete(0.0, "end")
|
||||||
self.chat.insert("end", self.temp.read())
|
self.chat.insert("end", self.temp.read())
|
||||||
self.colora()
|
self.colora()
|
||||||
|
|
||||||
def scrivi(self, event):
|
def scrivi(self, event):
|
||||||
"""Scrive un messaggio nel file"""
|
"""Scrive un messaggio nel file"""
|
||||||
if self.file != "":
|
if self.file != "":
|
||||||
@ -241,7 +244,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
)
|
)
|
||||||
self.testo.set("")
|
self.testo.set("")
|
||||||
file.write(riga)
|
file.write(riga)
|
||||||
|
|
||||||
def aggiorna(self):
|
def aggiorna(self):
|
||||||
"""Copia il file nel Buffer"""
|
"""Copia il file nel Buffer"""
|
||||||
self.temp.seek(0)
|
self.temp.seek(0)
|
||||||
@ -249,18 +252,18 @@ class Applicazione(tkinter.Frame):
|
|||||||
if self.file != "":
|
if self.file != "":
|
||||||
with open(self.file) as testo:
|
with open(self.file) as testo:
|
||||||
self.temp.write(testo.read())
|
self.temp.write(testo.read())
|
||||||
|
|
||||||
def cambiatitolo(self):
|
def cambiatitolo(self):
|
||||||
"""
|
"""
|
||||||
Aggiorna il titolo della finestra in modo che corrisponda
|
Aggiorna il titolo della finestra in modo che corrisponda
|
||||||
al file correntemente aperto.
|
al file correntemente aperto.
|
||||||
"""
|
"""
|
||||||
file = re.search("([^/]*)$", self.file)
|
file = re.search("([^/]*)$", self.file)
|
||||||
if self.file == "":
|
if self.file == "":
|
||||||
finestra.title("Dropchat")
|
finestra.title("Dropchat")
|
||||||
else:
|
else:
|
||||||
finestra.title("Dropchat - " + file.group(0))
|
finestra.title("Dropchat - " + file.group(0))
|
||||||
|
|
||||||
def colora(self):
|
def colora(self):
|
||||||
"""
|
"""
|
||||||
Evidenzia parti semantiche nel testo della chat
|
Evidenzia parti semantiche nel testo della chat
|
||||||
@ -275,7 +278,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
self.chat.evidenzia(nome, "nome")
|
self.chat.evidenzia(nome, "nome")
|
||||||
else:
|
else:
|
||||||
self.chat.evidenzia(nome, "altronome")
|
self.chat.evidenzia(nome, "altronome")
|
||||||
|
|
||||||
def mostramenu(self, event):
|
def mostramenu(self, event):
|
||||||
"""
|
"""
|
||||||
Gestisce l'apertura e il posizionamento dei menu contestuali
|
Gestisce l'apertura e il posizionamento dei menu contestuali
|
||||||
@ -291,14 +294,14 @@ class Applicazione(tkinter.Frame):
|
|||||||
self.menu2.post(event.x_root, event.y_root)
|
self.menu2.post(event.x_root, event.y_root)
|
||||||
else:
|
else:
|
||||||
self.menu1.post(event.x_root, event.y_root)
|
self.menu1.post(event.x_root, event.y_root)
|
||||||
|
|
||||||
def filerecenti(self):
|
def filerecenti(self):
|
||||||
"""Inserisce nella sidebar i file recentemente aperti"""
|
"""Inserisce nella sidebar i file recentemente aperti"""
|
||||||
for x, file in enumerate(self.preferenze["Chat"]):
|
for x, file in enumerate(self.preferenze["Chat"]):
|
||||||
file = " - " + re.search("([^/]*)$", file).group(0)
|
file = " - " + re.search("([^/]*)$", file).group(0)
|
||||||
if file not in self.sidebar.get(x):
|
if file not in self.sidebar.get(x):
|
||||||
self.sidebar.insert(x, file)
|
self.sidebar.insert(x, file)
|
||||||
|
|
||||||
def cancellafile(self):
|
def cancellafile(self):
|
||||||
"""Rimuove dalla sidebar il file correntemente selezionato"""
|
"""Rimuove dalla sidebar il file correntemente selezionato"""
|
||||||
if self.preferenze["Chat"][self.sidebar.indice] == self.file:
|
if self.preferenze["Chat"][self.sidebar.indice] == self.file:
|
||||||
@ -306,22 +309,22 @@ class Applicazione(tkinter.Frame):
|
|||||||
del self.preferenze["Chat"][self.sidebar.indice]
|
del self.preferenze["Chat"][self.sidebar.indice]
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
self.leggi()
|
self.leggi()
|
||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
|
|
||||||
def cambiafile(self, _ = None):
|
def cambiafile(self, _=None):
|
||||||
"""
|
"""
|
||||||
Apre il file correntemente selezionato
|
Apre il file correntemente selezionato
|
||||||
dalla sidebar nella chat.
|
dalla sidebar nella chat.
|
||||||
"""
|
"""
|
||||||
file = self.preferenze["Chat"][int(self.sidebar.curselection()[0])]
|
file = self.preferenze["Chat"][int(self.sidebar.curselection()[0])]
|
||||||
if self.file != file:
|
if self.file != file:
|
||||||
self.file = file
|
self.file = file
|
||||||
self.leggi()
|
self.leggi()
|
||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
|
|
||||||
def aprifile(self):
|
def aprifile(self):
|
||||||
"""
|
"""
|
||||||
Gestice la finestra di selezione di un nuovo file
|
Gestisce la finestra di selezione di un nuovo file
|
||||||
e lo apre nella chat.
|
e lo apre nella chat.
|
||||||
"""
|
"""
|
||||||
if sys.platform == "darwin":
|
if sys.platform == "darwin":
|
||||||
@ -332,16 +335,16 @@ class Applicazione(tkinter.Frame):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
file = tkinter.filedialog.askopenfilename(
|
file = tkinter.filedialog.askopenfilename(
|
||||||
title="Scegli un file...",
|
title="Scegli un file...",
|
||||||
**self.opzionifile
|
**self.opzionifile
|
||||||
)
|
)
|
||||||
if file not in self.preferenze["Chat"] and file != "":
|
if file not in self.preferenze["Chat"] and file != "":
|
||||||
self.preferenze["Chat"] += file,
|
self.preferenze["Chat"] += file,
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
self.file = file
|
self.file = file
|
||||||
self.leggi()
|
self.leggi()
|
||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
|
|
||||||
def nuovofile(self):
|
def nuovofile(self):
|
||||||
"""
|
"""
|
||||||
Gestisce la finestra per la creazione di un nuovo file
|
Gestisce la finestra per la creazione di un nuovo file
|
||||||
@ -360,16 +363,16 @@ class Applicazione(tkinter.Frame):
|
|||||||
)
|
)
|
||||||
if file != "":
|
if file != "":
|
||||||
self.file = file
|
self.file = file
|
||||||
open(self.file,"w").close()
|
open(self.file, "w").close()
|
||||||
if self.file not in self.preferenze["Chat"]:
|
if self.file not in self.preferenze["Chat"]:
|
||||||
self.preferenze["Chat"] += self.file,
|
self.preferenze["Chat"] += self.file,
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
self.leggi()
|
self.leggi()
|
||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
|
|
||||||
def cancellanontrovati(self):
|
def cancellanontrovati(self):
|
||||||
"""
|
"""
|
||||||
Rimuove i riferimenti dalla sidebar di tutti i file che
|
Rimuove i riferimenti dalla sidebar di tutti i file che
|
||||||
non sono più disponibili.
|
non sono più disponibili.
|
||||||
"""
|
"""
|
||||||
for x, file in enumerate(self.preferenze["Chat"]):
|
for x, file in enumerate(self.preferenze["Chat"]):
|
||||||
@ -380,20 +383,20 @@ class Applicazione(tkinter.Frame):
|
|||||||
del self.preferenze["Chat"][x]
|
del self.preferenze["Chat"][x]
|
||||||
continue
|
continue
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
|
|
||||||
def creapreferenze(self):
|
def creapreferenze(self):
|
||||||
"""
|
"""
|
||||||
Ricrea le preferenze di default se non vengono trovate.
|
Ricrea le preferenze di default se non vengono trovate.
|
||||||
"""
|
"""
|
||||||
default = {
|
default = {
|
||||||
"Utente": "Nomeutente",
|
"Utente": "Nomeutente",
|
||||||
"Chat": ["chat.txt"],
|
"Chat": ["chat.txt"],
|
||||||
"Chiave": "chiave.key",
|
"Chiave": "chiave.key",
|
||||||
"Geometria": "800x500+500+250"
|
"Geometria": "800x500+500+250"
|
||||||
}
|
}
|
||||||
json.dump(default,open("preferenze.json", "w"))
|
json.dump(default, open("preferenze.json", "w"))
|
||||||
self.preferenze = json.load(open("preferenze.json"))
|
self.preferenze = json.load(open("preferenze.json"))
|
||||||
|
|
||||||
def modificapreferenza(self, chiave, preferenza):
|
def modificapreferenza(self, chiave, preferenza):
|
||||||
"""
|
"""
|
||||||
Modifica una preferenza e la salva nel file esterno.
|
Modifica una preferenza e la salva nel file esterno.
|
||||||
@ -401,7 +404,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
if preferenza != "":
|
if preferenza != "":
|
||||||
self.preferenze[chiave] = preferenza
|
self.preferenze[chiave] = preferenza
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
|
|
||||||
def chiudi(self):
|
def chiudi(self):
|
||||||
"""
|
"""
|
||||||
Salva la geometria della finestra per il prossimo avvio,
|
Salva la geometria della finestra per il prossimo avvio,
|
||||||
@ -411,7 +414,7 @@ class Applicazione(tkinter.Frame):
|
|||||||
self.modificapreferenza("Geometria", finestra.geometry())
|
self.modificapreferenza("Geometria", finestra.geometry())
|
||||||
self.temp.close()
|
self.temp.close()
|
||||||
finestra.destroy()
|
finestra.destroy()
|
||||||
|
|
||||||
def loop(self):
|
def loop(self):
|
||||||
"""
|
"""
|
||||||
Loop principale
|
Loop principale
|
||||||
|
Loading…
Reference in New Issue
Block a user