2013-04-09 21 views
5

enter image description heredimensioni dei pulsanti per la mia calcolatrice Python Tkinter

Sono nuovo di pitone e Tkinter. Negli ultimi due giorni ho guardato e studiato alcuni tutorial e il mio primo progetto era una calcolatrice.

Siamo un po 'confusi da qualche parte lungo la linea. Se qualcuno potrebbe per favore dirmi come posso fare il pulsante "0" riempire il divario tra il "." pulsante. Vorrebbe anche il "+/-" per adattarsi in modo uniforme con il resto della colonna.

ho visto in un'altra domanda simile a questo un ragazzo ha dato una risposta il

button1.config(height = WHATEVER, width = WHATEVER2) 

Da quando ho i miei pulsanti collocati in una griglia, posso implementare questo e come?

bttn_0 = Button(calc, text = "0") 
bttn_0["command"] = lambda: sum1.num_press(0) 
bttn_0.grid(row = 5, column = 0, pady = 5) 

enter image description here

risposta

3

F3AR3DLEGEND non è corretto, è possibile possibile ottenere l'effetto desiderato utilizzando grid. Dovresti utilizzare la parola chiave columnspan per fare in modo che un widget si estenda su più colonne, ad es.

bttn_0.grid(row = 5, column = 0, pady = 5, columnspan = 2) 

Per esempi, vedere here.

+1

HAHAHA no lie Stavo solo tornando qui per dire che ho usato l'intervallo di colonne. Mi sono guardato intorno e ho visto che ho usato columnspan in precedenza nella casella di testo "face palm". Ma grazie mille, sono molto contento del layout ora. –

-2
bttn_0 = Button(calc, text = "0", height = my_height, width = my_width) 

Per riempire il vuoto, provate alcuni valori diversi, o calcolare in base alla larghezza della finestra ed ogni altro pulsante di (in quella riga) di larghezza.

+0

Impressionante mi piace. Ha funzionato nel ridimensionare il pulsante ma rimane centrato in quella colonna. Ho aggiunto una foto come esempio. –

+0

@AndrewH Non è possibile cambiarlo a meno che non si utilizzi un metodo di layout diverso (come '.pack()') o si modifichi la dimensione del pulsante. Se vuoi che il pulsante 0 sia centrato sotto i pulsanti 1 e 2 (che penso che tu voglia), dovresti sperimentare l'uso di frame diversi (genitore/figlio). –

+0

Questo era quello che stavo pensando. Grazie per avermelo chiarito. –

3

Per ottenere lo zero accanto al ".", Impostare columnspan su 2. Si potrebbe anche voler impostare l'estensione della colonna del widget di immissione superiore su 4 in modo che si adatti esattamente alle quattro colonne di pulsanti (e imposta anche sticky per ottenere un allineamento perfetto).

Non è possibile ottenere il pulsante +/- per adattarlo uniformemente agli altri poiché è più largo. Tuttavia, puoi far si che gli altri si adattino al pulsante +/-. Se si utilizza sticky="ew", i pulsanti si espandono in larghezza per riempire le colonne (ad esempio: si "attaccano" ai lati est e ovest della cella).

+0

Ogni cosa è allineata bene. "pady = 5, padx = 5)" su tutti i pulsanti e imposto la larghezza e l'altezza a 1 su tutti i pulsanti. Il pulsante +/- si adatta perfettamente bene ora.Ora sto cercando di capire come posso legare le mie chiavi invece di dover puntare e fare clic su ogni numero. Ma a parte questo sta andando molto bene. Caricherò una foto. –

Problemi correlati