2013-12-14 141 views
7

これは、単純なテキストボックスとtkinterのボタンを生成するために使用したコードです。pythonを使ってtkinterのボタンとフレームのフォントとサイズを変更する方法は?

フレームとボタンの外観をよくするためには、どのようなパラメータが必要ですか?

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()    

答えて

10

最初に、Tkinterのベストリファレンスはthis New Mexico Tech websiteです。 tocにはsection on fontsがあり、section on Button widgetsにはfontというオプションがあります。

あなたは今

helv36 = tkFont.Font(family='Helvetica', size=36, weight='bold') 
# you don't have to use Helvetica or bold, this is just an example 

ボタンフォント

button['font'] = helv36 
を設定することができますニューメキシコテックのウェブサイトからの例のようなフォントを作成するフォント

from Tkinter import * 
import tkFont 
root = Tk() 

を作成するには、Tkinterのオブジェクトを持っている必要があります

ボタンのサイズは、ジオメトリマネージャのEG:gridまたは01によって異なります。ニューメキシコ州のテクニカルサイトでgridメソッドのみがlayouts sectionでカバーされていますが、effbot.orgも参考になります。packをよくカバーしています。

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') 

Tkinter Button fonts

またttkを試してみてください。あなたがappearencesを微調整したい場合は

2

tkdocs tutorialは、指定されたフォントとスタイルを使用することをお勧めします:?

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() 
+0

これは働いていたが、どのように私はフレーム内のフレームサイズや再位置にボタンを変更することができます任意のドラッグがありますし、 TkinterでPython上で正しく動作するドロップインタフェース? – Abkb

+0

@AbhijathBenhur:これは[レイアウトマネージャーの]仕事です(http://www.tkdocs.com/tutorial/grid.html)。 [@マークMikofskiの答え](http://stackoverflow.com/a/20588878/4279)の例を参照してください。私はtkinterインターフェース用のGUIビルダーを使ったことがありません。あなたはそれについて別の質問として[質問する]ことができます(http://stackoverflow.com/questions/ask)。 – jfs

+0

Pythonバインディング[PyQt4](http://www.riverbankcomputing.com/software/pyqt/download)で[Qt](http://qt-project.org/)を使用してください。 [Qt Designer](http://qt-project.org/doc/qt-4.8/designer-manual.html)というGUIビルダーが含まれています。また、ヘルプとロケールビルダー(Qt AssistanceとQt Linguist)もあります。注意Qt Creatorは、C/C++およびJava用のIDEです。 Qtは、[QML](http://qt-project.org/doc/qt-4.8/gettingstartedqml.html)というマークアップ言語を使用して、バックエンドからGUI、ヘルプ、ローカリゼーションを抽象化する、主流の最新のUIフレームワークです。 Qt Designerが自動的に生成します。 –

関連する問題