Aiuto con TKINTER

di il
1 risposte

Aiuto con TKINTER

Buongiorno ragazzi,
in questi ultimi giorni ho deciso di cominciare ad approcciarmi all'aspetto delle interfacce grafiche per Python utilizzando la libreria TkInter. Tra le prime cose mi sono informato su come creare un mio primo button. La mia idea era quello di crearne due che fossero grandi esattamente come la metà della larghezza e alti come tutto lo schermo. Su uno scritto NEW e sull'altro scritto OLD. Qui sotto un disegno fatto da me che potrebbe essere d'aiuto nella spiegazione.
painr.png
painr.png

Io ho provato a scrivere il codice così:
import tkinter as tk
window = tk.Tk()
WIDTH = 600
HEIGHT = 600
window.geometry(f"{WIDTH}x{HEIGHT}")
window.title("Old or New")
window.configure(background = "white")

def first_print():
    text = "Hello World!"
    text_output = tk.Label(window, text = text, fg = "black", font = ("Times New Roman", 16))
    text_output.grid(row = 0, column = 1)

def second_function():
    text = "Nuovo messaggio | nuova funzione"
    text_output = tk.Label(window, text = text, fg = "green", font = ("Times New Roman", 16))
    text_output.grid(row = 0, column = 1)


first_button = tk.Button(text = "New!", width = int(WIDTH/2), height = HEIGHT,  command = first_print) # bottone con testo "Saluta!"
first_button.grid(row = 0, column = 0)
second_button = tk.Button(text = "Old", width = int(WIDTH/2), height = HEIGHT, command = second_function)
second_button.grid(row = 0, column = 1)

if __name__ == "__main__":
    window.mainloop()
non mi da errori nell'eseguzione ma succede questo:

PROBLEMI RISCONTRATI:
- il testo dei bottoni non appare
- c'è un solo bottone tutto bianco a tutto schermo, non due separati
- quando il bottone viene premuto non accade comunque niente. Per chi fosse interessato ecco un piccolo video

https://drive.google.com/file/d/1PExZCVmIdZQGnBkCp49EgJHQzh2e19a8/view?usp=sharing

PS. voi mi sapreste dire come cambiare il font a un testo nel bottone?

1 Risposte

  • Re: Aiuto con TKINTER

    Le dimensioni indicate con width ed height per un motivo arcano non sono in pixel, e non sono neanche uguali. Se per esempio setti a 10 entrambi i parametri, ottieni un rettangolo e non un quadrato!!!
    Per avere le dimensioni espresse davvero in pixel si può ricorrere a questo "trucchetto":
    pixel = tk.PhotoImage(width=1, height=1)
    bottone1= tk.Button(parent, text = "Ciao", width = 100, height = 100, compound="c", image=pixel) 
    Per personalizzare il font devi usare la classe Font di tkinter.font
    import tkinter.font as font
    
    myFont = font.Font(family='Helvetica', size=20)
    bottone1= tk.Button(parent, text = "Ariciao", font=myFont) 
Devi accedere o registrarti per scrivere nel forum
1 risposte