top

10. 複数のアプリ画面をつくる

トップページ
Pythonで簡単にアプリを作ることができる「tkinter」についてインストールから実用例までを複数章に分けて解説していく。(2020年12月21日 更新)

目次




複数のアプリ画面をつくる

  • アプリを複数定義する

  • アプリの定義方法は第2章の通り、(変数) = t.Tk() だ。複数のアプリを定義するには複数の変数を用いる。
    よって、2つのアプリを用いたプログラムの全体像は下のようになる

    import tkinter as t

    #アプリ1を定義
    app1 = t.Tk()

    #アプリ2を定義
    app2 = t.Tk()

    #~~(行いたい処理)~~

    #アプリ1を表示
    app1.mainloop()

    #アプリ2を表示
    app2.mainloop()



  • 特定のアプリにウィジェットを作成する

  • ウィジェットとはtkinterにおけるボタンやエントリーなどの画面に表示させるUIのことだ。複数のアプリを作成した状態で特定のアプリに特定のウィジェットを作成するには、ウィジェットの定義時にそのアプリ名を明記すればよい。


    app1 = t.Tk()
    app2 = t.Tk()

    #アプリ1にボタンを作成(アプリ2には作成されない)
    but = t.Botton( app1, text=u'ボタン' )
    but.pack()

    app1.mainloop()
    app2.mainloop()



     実行例
    import tkinter as t

    #アプリ1の定義
    app1 = t.Tk()
    app1.title( 'アプリ1' )
    app1.geometry( '250x160' )
    app1[ 'background' ] = '#5050f8'
     #背景色を青に設定

    #アプリ2の定義
    app2 = t.Tk()
    app2.title( 'アプリ2' )
    app2.geometry( '250x160' )
    app2[ 'background' ] = '#f85050'
     #背景色を赤に設定

    #アプリ1にボタンを作成
    but = t.Button( app1, text = u'ボタン' )
    but.place( x = 10, y = 10, width = 230 )

    #アプリ2にテキストを作成
    tex = t.Text( app2 )
    tex.place( x = 20, y = 20, width = 210, height = 120 )
    tex.insert( 0., 'テキスト' )

    app1.mainloop()
    app2.mainloop()

     実行結果