Skip to content

Instantly share code, notes, and snippets.

@Rokt33r
Created July 2, 2014 06:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rokt33r/75b5bc64b61b8cf1314f to your computer and use it in GitHub Desktop.
Save Rokt33r/75b5bc64b61b8cf1314f to your computer and use it in GitHub Desktop.
Python 4th week

GUI

今回からはGUIを使ってみる。GUIとはGraphic User Interfaceを略した言葉であって、 Terminalのようにデータを文字だけじゃなくて、絵としても表してくれる。

つまり、計算の結果を絵で表すことで、グラフを書いたりなどいろんなデータをいろんなやり方で視覚化することができる。

Tkinter

TkinterはPythonに基本的に入っているモジュールでこれを用いれば、簡単にGUIプログラムが作れる。

これ以外もPySide、PyQTなどいろんなモジュールがあるが、Tkinterがかなり使いやすかったのでここではTkinterを使う。

まずは、Tkinterモジュールを呼んでみて簡単に画面表示をしてみる。

from tkinter import *

master = Tk()

def sayHello() :
	print('Hello!')

button = Button(master, text="hello!", command=sayHello)
button.pack()

mainloop()

一応実行してみよう

from tkinter import *

Tkinterを呼び出すことである。

master = Tk()

Tkは今から私たちが描くために使うキャンバスである。

button = Button(master, text="hello!", command=sayHello)

ButtonというObjectもtkinterモジュールの中に入ってものであって、ボータンである。 そして、TkinterではObjectの属性を生成の際に名前付きの引数をいれて作るようになっている。 つまり、textとして入れた値はボータンの文字に、commandの値はボータンがクリックされたときに行う関数が入る。

button.pack()

Buttonを表示させる。

mainloop()

今までつくってきたプログラムは処理が終わるとプログラムが終了される。 問題は絵で表してもらっても、表した後すぐにプログラムが終了されるので、グラフィックを見る時間がない。 これを防ぐために、無限ループを作っておいてプログラムが終了されないようにする。

今見ている画面も無限ループを使って表示している。このようなシステムのことをTime-sharing systemという。

Tkinter Canvas

Tkinterを使って絵を書いてみる。 絵を書くためにはTkinterが支援しているCanvasというComponentを使えばよくて、 使い方は、Fortranの描き方とほとんど一緒である。

Canvas

前回ボータンをウィンドウで表示させてように、CanvasというObjectを生成して使う。

master = Tk()

w = Canvas(master, width=800, height=600)
w.pack()

w.create_line(100,100,200,200,color="red")

線を引いてくれる機能である。

以外の機能は次のページを参考した方がいいとおもう。

Tkinter tutorial

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment