【初心者向け】Tkinterでウィンドウサイズを指定する方法をやさしく解説!
こんにちは。ゆうせいです。
今回は、Pythonの標準GUIライブラリ「Tkinter(ティーキンター)」でウィンドウサイズを指定する方法について解説していきます。
「GUIって何?」「Tkinterって聞いたことあるけど、難しそう…」という方でも大丈夫。高校生でも理解できるように、たとえ話や図も交えながら、丁寧に説明しますね!

Tkinterとは?まずは基本から
Tkinterは、Pythonに標準で搭載されているGUI(グラフィカル・ユーザー・インターフェース)ツールキットです。
GUIとは、「ボタン」や「テキストボックス」など、見た目で操作できるプログラムの画面のことです。たとえば、電卓アプリのようなものを作りたいときに使います。
Tkinterを使えば、Pythonのコードだけでウィンドウを表示したり、ボタンを置いたり、入力フォームを作ったりできます。
ウィンドウサイズの指定方法
さて、本題に入りましょう。
Tkinterでウィンドウを表示するとき、何もしなければ初期サイズ(だいたい200x200ピクセルくらい)で表示されます。でも、たとえば「横500ピクセル、縦300ピクセルで表示したい」と思うこと、ありますよね?
サイズの指定には「geometryメソッド」を使う
Tkinterでは、ウィンドウサイズを設定するには、以下のようにします。
import tkinter as tk
root = tk.Tk()
root.geometry("500x300") # 横500px、縦300pxに設定
root.mainloop()
この .geometry()
というメソッドの中に、「幅 x 高さ」の文字列を指定することで、ウィンドウサイズを変更できます。
geometryの書き方のルール
- 書式は
"幅x高さ"
(例:"800x600") - 数字はピクセル単位
- 「×」ではなく英小文字の x を使う
例えば "1024x768"
とすれば、ウィンドウが1024ピクセルの幅、768ピクセルの高さで表示されます。
図で確認!
+-------------------------------+
| | ← 高さ:300px
| |
| |
| |
+-------------------------------+
↑ 幅:500px →
ウィンドウの表示位置も指定できる!
geometryメソッドでは、サイズだけでなく表示位置も指定できます。
「+x+y」で画面内の位置も決められる
たとえば、画面の左上から右に100px、下に200pxの位置に表示させたいときは、次のように書きます。
root.geometry("500x300+100+200")
+100
:左端から右に100ピクセル+200
:上端から下に200ピクセル
つまり、「サイズ」と「位置」を一緒に指定できるんです!
例え話:
これは、家(ウィンドウ)を建てるときに、「間取り(サイズ)」だけじゃなく、「土地のどこに建てるか(位置)」も決めるようなものです。
ウィンドウサイズを変更できなくする方法
アプリによっては、「ウィンドウのサイズをユーザーに変えられたくない」と思う場面もあります。
そんなときは、次のようにします。
root.resizable(False, False)
- 最初の
False
は「横方向を変更不可」 - 2番目の
False
は「縦方向を変更不可」
片方だけを変更可能にすることもできる!
root.resizable(True, False) # 横だけ変更可能
よくあるミスと注意点
ミスの内容 | 原因と対策 |
---|---|
"500×300" と書く | 「×」が全角だったり、文字コードが違うと認識されません。英語の x を使いましょう。 |
数字の後にスペースを入れる | "500 x 300" のように書くとエラーになります。スペースは入れないようにしましょう。 |
root.geometry(500x300) と書く | geometryメソッドの引数は文字列です。数字ではなく、**"500x300"**のように「クォーテーション」で囲んでください。 |
メリットとデメリットも知っておこう
メリット | デメリット |
---|---|
サイズ指定で見やすい画面が作れる | 固定サイズにすると、解像度の違うPCで見づらい場合がある |
一貫したレイアウト管理ができる | 内容に応じて動的にサイズ調整する処理は別途必要 |
今後の学習の指針
Tkinterのウィンドウサイズ指定は、GUIアプリ開発の第一歩です。これができるようになると、「どんなレイアウトにしようかな」と自分でデザインを考える力がついてきます。
次に学ぶと良いテーマは以下の通りです!
- ウィンドウの最小サイズ・最大サイズの設定:
.minsize()
や.maxsize()
- 画面サイズに合わせたウィンドウのセンタリング
- ボタンやラベルの配置(Pack、Grid、Placeの使い分け)
- レスポンシブ対応のレイアウト作成
何か疑問があれば、どんどん質問してくださいね!
それでは、次回も楽しく学んでいきましょう!
セイ・コンサルティング・グループでは、新人エンジニアの方がPythonプログラムを写経できるタイピングゲームを無償公開中です。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。