Topic: Menu con tkinter  (Letto 289 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline johnwick

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Menu con tkinter
« il: Maggio 10, 2020, 01:40 »
Ciao a tutti. Sto cercando di capire come funziona questo widget che posto sotto, ma non funziona.
Lo preso dal sito: https://www.tutorialspoint.com/python/tk_menu.htm

E' fatto per python versione 2. Io sto usando python 3.8.3, con Visual Studio Code. Questo è il codice:

Citazione
from Tkinter import *

def donothing():
   filewin = Toplevel(root)
   button = Button(filewin, text="Do nothing button")
   button.pack()
   
root = tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)

filemenu.add_separator()

filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)

editmenu.add_separator()

editmenu.add_command(label="Cut", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
editmenu.add_command(label="Delete", command=donothing)
editmenu.add_command(label="Select All", command=donothing)

menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)

root.config(menu=menubar)
root.mainloop()

L'errore è nella riga 1 (invalid syntax unknown, line 1

Come risolvo il problema?

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 381
  • Punti reputazione: 0
    • Mostra profilo
Re:Menu con tkinter
« Risposta #1 il: Maggio 10, 2020, 07:04 »
Ciao @johnwick, ben venuto nel Forum

Riguardo al Tuo problema : hai due punti di errore :

il primo riguarda l'import, nel python 3.x la libreria Tkinter diventa tkinter, correggi così :
from tkinter import *


il seconto è l'utilizzo dell'oggetto Tk, Tu hai scritto "root = tk()" mentre dovevi scrivere "root = Tk()"

Correggi questi due punti e il codice postato funzionerà ...

Detto questo, nella Tua presentazione dici di star cercando di imparare, pregevole intenzione, ti sei già seguito passo passo un corso (o meglio, un buon libro) su python sino alla programmazione ad oggetti compresa?

Domando ciò perché gli esempietti tipo il genere da Te lincato NON permettono di comprendere le tecniche necessarie per impostare una interfaccia grafica utente (chiamiamola GUI) che, necessariamente, richiede una serie di metodologie funzionali difficilmente realizzabili tramite tecniche di programmazione imperativa (tipo l'esempio) o funzionale; bisogna ricorrere alla programmazione ad oggetti (classi).

Tutte e tre le tecniche di programmazione citate sono disponibili in python. Comunque, le GUI sono argomenti di ordine un pochino avanzato, affrontarle prematuramente può portare a notevole confuzione e frustrazione.

Ciao.

Offline johnwick

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re:Menu con tkinter
« Risposta #2 il: Maggio 10, 2020, 07:43 »
Grazie perla tua info, funziona.

Su youtube sto seguendo parecchi corsi video, specialmente quelli di PyMike. Seguirò il tuo consiglio. Grazie.