C'est le code que j'ai utilisé pour générer une simple zone de texte et un bouton dans tkinter.
Quels devraient être les paramètres pour mieux voir le cadre et les boutons?
root = Tk.Tk()
def submit():
query = entry.get()
retrieve(query)
entry = Tk.Entry(root)
entry.pack()
button = Tk.Button(root, text='submit', command=submit)
button.pack()
root.mainloop()
Tout d'abord, la meilleure référence pour Tkinter est ce site Web de New Mexico Tech . Dans le toc, vous trouverez un section sur les polices , et dans le section sur les widgets de boutons vous trouverez l'option font
.
vous devez avoir un objet Tkinter pour créer une police
from Tkinter import *
import tkFont
root = Tk()
créer une police comme l'exemple du site Web de New Mexico Tech
helv36 = tkFont.Font(family='Helvetica', size=36, weight='bold')
# you don't have to use Helvetica or bold, this is just an example
vous pouvez maintenant définir la police du bouton
button['font'] = helv36
La taille du bouton dépendra de votre gestionnaire de géométrie, EG: grid
ou pack
. Seule la méthode grid
est couverte dans la section layouts par le site de New Mexico Tech, mais effbot.org est également une excellente référence et il couvre pack
assez bien.
from Tkinter import *
import tkFont
# using grid
# +------+-------------+
# | btn1 | btn2 |
# +------+------+------+
# | btn3 | btn3 | btn4 |
# +-------------+------+
root = Tk()
# tkFont.BOLD == 'bold'
helv36 = tkFont.Font(family='Helvetica', size=36, weight=tkFont.BOLD)
btn1 = Button(text='btn1', font=helv36)
btn2 = Button(text='btn2', font=helv36)
btn3 = Button(text='btn3', font=helv36)
btn4 = Button(text='btn4', font=helv36)
btn5 = Button(text='btn5', font=helv36)
root.rowconfigure((0,1), weight=1) # make buttons stretch when
root.columnconfigure((0,2), weight=1) # when window is resized
btn1.grid(row=0, column=0, columnspan=1, sticky='EWNS')
btn2.grid(row=0, column=1, columnspan=2, sticky='EWNS')
btn3.grid(row=1, column=0, columnspan=1, sticky='EWNS')
btn4.grid(row=1, column=1, columnspan=1, sticky='EWNS')
btn5.grid(row=1, column=2, columnspan=1, sticky='EWNS')
Essayez également ttk
.
tutoriel tkdocs recommande d'utiliser des polices et des styles nommés si vous souhaitez modifier les apparences:
import random
try:
import tkinter as Tk
import tkinter.ttk as ttk
import tkinter.font as font
except ImportError: # Python 2
import Tkinter as Tk
import ttk
import tkFont as font
def change_font_family(query, named_font):
named_font.configure(family=random.choice(font.families()))
root = parent = Tk.Tk()
root.title("Change font demo")
# standard named font (everything that uses it will change)
font.nametofont('TkDefaultFont').configure(size=5) # tiny
# you can use your own font
MyFont = font.Font(weight='bold')
query = Tk.StringVar()
ttk.Entry(parent, textvariable=query, font=MyFont).grid() # set font directly
ttk.Button(parent, text='Change Font Family', style='TButton', # or use style
command=lambda: change_font_family(query, MyFont)).grid()
query.set("The quick brown fox...")
# change font that widgets with 'TButton' style use
root.after(3000, lambda: ttk.Style().configure('TButton', font=MyFont))
# change font size for everything that uses MyFont
root.after(5000, lambda: MyFont.configure(size=48)) # in 5 seconds
root.mainloop()