【Python】tkinter: 画面のサイズ・位置・最大化表示の設定(geometryメソッド)
2020.09.12 /
PythonでGUIアプリケーションを作成するのに使用するtkinter。
私はPythonでGUIアプリを作成するとなったら、tkinterを主に使ってます。なぜなら一番初めに覚えた方法だから。
tkinterを使うことで、簡単にGUI(ユーザーが直感的に使える画面)アプリを作ることができますよね。
そんなtkinterで一番最初に行うメインウィンドウの作成について詳しく解説していきます。
tkinterではメインウィンドウのサイズを設定できるだけじゃなくて、メインウィンドウの起動時の位置や画面いっぱいに表示される方法(最大化表示)などもあります。
私はプログラミング初心者の方は、特にGUIアプリケーション作成から始めることをお勧めします。
なのでプログラミング初心者の方も、実際にプログラムを書いて起動してみてください。
tkinterとは?
そもそもtkinterって何?という方は、ぜひ以下記事を参照してください!
【Python】tkinterを使ったGUIアプリケーションの作成方法
tkinterでのGUIアプリケーション作成の流れがよーくわかりますよ。
上記記事で基本的なtkinterでのアプリ作成方法がわかったら、そのアプリのサイズ変更や位置、最大化の方法を学びましょう!
画面のサイズを変更する
まずはメインウィンドウのサイズ変更方法からです。
メインウィンドウのサイズ変更にはgeometoryメソッドを使います。
geometry(横サイズx縦サイズ)で画面サイズを指定します。
例えば、縦200px・横200pxのGUIアプリを作成するときは以下のようになります。
import tkinter as tk
root = tk.Tk()
root.title("tkinterの画面サイズ変更")
root.geometry("200x200")
root.mainloop()
上記プログラムを起動すると以下の画面が表示されます。
ちなみにgeometory(ジオメトリ)は、日本語で幾何学とか形状っていう意味を持つ英単語らしいです。
英語での日常会話で普段使わないから、今回調べてみて初めて知りました。
メインウィンドウの形状(サイズ)を決めるってことで使われているんですかね。
表示する位置を調整する
次に作成したアプリを起動したときの位置を変更する方法を説明します。
私個人的には、アプリを起動したときの位置は左上が好きです。
そんな人はgeometoryを以下のようにします。
geometory(200x200+0+0)
200px×200pxの画面が左上(縦0px、横0px)の位置で表示します。
例えば上から500px、左から20pxの位置でアプリが表示するようにしたい場合は以下のように書きます。
geometory(200x200+100+100)
これで好きな位置にアプリを表示できるようになりましたね。
画面を最大化(スクリーンいっぱい)で表示される
最後にtkinterで作成したデスクトップGUIアプリケーションのメインウィンドウのサイズを、画面いっぱいに表示させる方法を紹介します。
ここで言っている画面いっぱいとは最大化されたサイズということです。
作成したデスクトップアプリケーションを起動時に最大化した状態で表示したいという人は多いと思うんですよね。
またこの方法はWindows10、Python3.7で成功した方法です。
ここで紹介する方法以外にもfullscreen属性をTrueにする等の方法がありますが、それらは試したことはないです。
root.state(‘zoomed’)
私が試した中で最もうまく、そして簡単に成功した方法がこの方法です。
root.state(‘zoomed’)
この一行を入れるだけで、デスクトップアプリを起動すると、最大化された状態でアプリは表示されます。
もしかしたらPythonのバージョンによって、できるできないがわかれるかもしれないです。
root.maxsize()
次に紹介する方法はmaxsize()を使う方法です。
size = root.maxsize()
root.geometry(‘{}x{}+0+0’.format(*m))
私の場合ですが、ほぼ最大化された状態でアプリは開くようになるのですが、若干サイズが異なって表示されます。
なので一番確実に最大化してアプリを表示させるには、最初に紹介したroot.state(‘zoomed’)をお勧めします。
まとめ
知っていると意外に使えるtkinterでのサイズ変更・位置・最大化についてでした。
最大化の方法は他のサイトでは、あまり触れられていないので、この記事で初めて知ったという人は多いんじゃないかな。
ぜひぜひ仕事やプライベートのプログラミングで使用してみてください。