[Python] Tkinter
基本的な枠組みの作成
・ウィンドウやフレーム(ウィジェットを格納するコンテナ)を作成する。
# ex.1
import tkinter as tk
root = tk.Tk()
f = tk.Frame(root)
f.grid()
# 実行
root.mainloop()
# ex.2
from tkinter import *
from tkinter import ttk
class CalcApp(ttk.Frame):
def __init__(self, master = None):
super().__init__(master)
def main():
root = Tk()
root.title('簡単電卓')
CalcApp(root)
root.mainloop()
# メインプログラム
if __name__ == '__main__':
main()
Tkinterを使うには、モジュール 'Tkinter' をimportする。
ttkはウィジェットの一つでex.2では使用。
トップレベルのウィジェット(ウインドウ)の実装は、root = tk.Tk() や root = Tk()で行う。アプリケーションの実行はroot.mainloop()で行う。
ウィジェットの作成
・ボタンをウインドウの中に格納、配置する。
# ex.1
# ボタンの作成
button1 = tk.Button(f, text = '1', )
# ボタンの配置
button1.grid(row = 0, column = 0)
# ex.2
# 一行に作成と配置をまとめることも可能
def create_widgets(self):
ttk.Button(self, text = '1').grid(row = 0, column = 0)
grid()は格子状の位置を与え、ボタンの位置を指定するメソッド。
細かい点でわからないことが多い。
・TK(), Frame()はどういったメソッドか
・mainloop()をrootに使うとなぜプログラムが実行されるか
・root = Tk()とroot = tk.Tk()の差 => Tk()って何
かなり手前のところで整理できていない気がする。
classが出てくると3倍くらいわからない。selfの位置づけなど。
環境
OS : windows 10(64 bit)
Python version : 3.8.2
テキストエディタ : VSCode