tkinterで忘れがちなこと色々 其の2

いつもPyrhonプログラムを作るときに調べながら作るけどもすぐ忘れてしまう。なのでメモを残しておこうと。其の2。


目次

  1. gridでGUIパーツを配置する例
  2. tkinter.Entry入力値の取得方法2通り
  3. tkinter.Entry初期値の設定方法
  4. tkinter関連の記事一覧

gridでGUIパーツを配置する例

import tkinter

if __name__ == '__main__':
    root = tkinter.Tk()
    l1 = tkinter.Label(root, text='左上')
    l2 = tkinter.Label(root, text='左下')
    l3 = tkinter.Label(root, text='右上')
    l4 = tkinter.Label(root, text='右下')
    l1.grid(row=0, column=0)
    l2.grid(row=1, column=0)
    l3.grid(row=0, column=1)
    l4.grid(row=1, column=1)
    tkinter.mainloop()

実行結果は以下の通り。

grid(マス目状)にGUIパーツを並べる例。packの代わりにgridを呼べばいい。その際row(行)、column(列)を指定する。

tkinter.Entry入力値の取得方法2通り

import tkinter

if __name__ == '__main__':
    def func():
        print(var.get())
        print(e.get())
    root = tkinter.Tk()
    var = tkinter.StringVar()
    e = tkinter.Entry(root, textvariable=var)
    b = tkinter.Button(text='Exec', command=func)
    e.pack()
    b.pack()
    tkinter.mainloop()

実行結果(GUI表示のみ)は以下の通り。

tkinter.Entryオブジェクトからget()を呼ぶ方法と、tkinter.StringVar()でインスタンス化したオブジェクトをtextvariable=varといった形で登録しておく方法がある。GUIパーツによってはget()が用意されていない場合があるので、tkinterにおいては後者の方法が一般的のようだ。

tkinter.Entry初期値の設定方法

import tkinter

if __name__ == '__main__':
    root = tkinter.Tk()
    e = tkinter.Entry(root)
    e.insert(0, 'default')
    e.pack()
    tkinter.mainloop()

実行結果は以下の通り。

insert()で設定できる。第一引数は挿入位置を表していて、この場合(0を指定した場合)は行頭から文字を挿入する。tkinter.ENDを指定すると、文末に文字を挿入でき、すでに入力値があった場合には、既存文字列を消さずに追記できる。


コメント

このブログの人気の投稿

Python SQLite スレッド間でコネクションの使いまわしは出来ない

slackでgeneralの投稿を全削除する

Google location history(JSON形式)をCSVファイルにする