学生や生徒と一緒に仕事をする中で、プログラミング言語を勉強するとき、グラフィックスを扱うことは非常に興味深いことに気付きました。 フィボナッチ数に関する課題に飽き飽きしていて、言語の学習に興味を失ったように思われる学生でさえ、グラフィックスに関連するトピックについてより積極的になりました。
したがって、tkinter(Pythonでグラフィカルインターフェイスを開発するためのクロスプラットフォームライブラリ)を使用して、Pythonで小さなグラフィカルプログラムを作成する練習を提案します。
この記事のコードは、Python 3.5用に作成されています。
割り当て :異なる色の円の任意のサイズをキャンバスに描画するプログラムを作成します。
難しいことではありません。プログラムは「子供向け」かもしれませんが、tkinterで何ができるかを鮮明に説明するために考えています。
まず、色の指定方法を説明します。 もちろん、コンピューターにとって便利な方法です。 このため、tkinterには次の方法で起動できる特別なツールがあります。
from tkinter import * window = Tk() colorchooser.askcolor()
コードの説明:- rom tkinter import *-ライブラリ、またはアスタリスク(*)で示されるすべてのメソッドをインポートします。
- window = Tk()-ウィンドウtkinterを作成します。
- colorchooser.askcolor()-色選択ウィンドウを開き、2つの値のタプルを返します:3つの要素のタプル、各RGB色の強度、および文字列。 16進数の色。
注:以下のコメントで述べたように、アスタリスクはすべてをインポートするわけではなく、記述する方が信頼性が高くなりますtkinter import colorchooserから
花の英語名を使用して、図面の色を決定できます。 ここでは、すべてがサポートされているわけではないことに注意してください。 問題なく「白」、「黒」、「赤」、「緑」、「青」、「シアン」、「黄」、「マゼンタ」の色を使用できる
と書か
れています。 しかし、私はまだ実験を行っており、その結果がさらにわかります。
Pythonで描画するには、キャンバスを作成する必要があります。 描画には、点(0、0)が左上隅にある
xおよび
y座標系が使用されます。
一般的に、十分なイントロがあります-始めましょう。
from random import * from tkinter import * size = 600 root = Tk() canvas = Canvas(root, width=size, height=size) canvas.pack() diapason = 0
コードの説明:- ランダムインポートから*-ランダムモジュールのすべてのメソッドのインポート。
- from tkinter import *-これはすでに知っています。
- サイズ変数は後で必要になります。
- root = Tk()-ウィンドウを作成します;
- canvas = Canvas(ルート、幅=サイズ、高さ=サイズ)-サイズ変数の値を使用してキャンバスを作成します(したがって、必要でした)。
- canvas.pack()-ウィンドウ内にキャンバスを配置する指示。
- diapason変数は、後でループ条件で使用するために必要になります。
次に、ループを作成します。
while diapason < 1000: colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime', ''
コードの説明:- 一方、diapason <1000:-diapason変数が1000に達するまでサイクルが繰り返されることを前提条件とします。
colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime', ''
円の色をランダムに選択するためのリストを作成します。 色の1つは、フォーマット「#f55c4b」-16進法の色コードで書かれていることに注意してください。
ここで、色の選択について詳しく説明します。 できるだけ多くの色の選択肢を追加したかったので
、英語の色名の
表を使用しました。 しかし、彼女はすぐに多くの英語名がサポートされていないことに気付きました-プログラムは動作しなくなりました。 したがって、16進法での色の定義は、これらの目的により適したオプションです。
x0 = randint(0、サイズ)およびy0 = randint(0、サイズ)-サイズsizeのキャンバス内の
xおよび
y座標のランダムな選択。
d randint(0、サイズ/ 5)-円のサイズの任意の選択。サイズ/ 5によって制限されます。
canvas.create_oval(x0、y0、x0 + d、y0 + d、塗りつぶし=色)-座標x0およびy0、垂直および水平寸法x0 + dおよびy0 + dの点で実際に円を描き、色で塗りつぶし、色のリストからランダムに選択されます。
root.update()-update()-キュー内のすべてのタスクを処理します。 通常、この関数は、アプリケーションがユーザーのアクションに対する応答性を維持する必要がある場合に、「重い」計算中に使用されます。
これがなければ、サークルは最終的に表示されますが、その外観のプロセスは表示されません。 つまり、これはこのプログラムに魅力を与えます。
diapason + = 1-サイクルステップ、カウンター。
結果はこの写真です:

上部と右側にいくつかの空きスペースが形成されるという事実が気に入らなかったため、2000または3000サイクル未満のwhile diapasonの条件をわずかに変更しました。
ループを無限にすることもできます。
while True: colors = choicecolors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime']) x0 = randint(0, size) y0 = randint(0, size) d = randint(0, size/5) canvas.create_oval(x0, y0, x0+d, y0+d, fill=colors ) root.update()
このようなことが起こります:
instagram.com/p/8fcGynPlEcキャンバス上で円を描く速度や動きをいじることができると思います。 色の選択肢を増やすことができます。 スペースバーを押すなどして、無限ループを停止する条件を設定します。 これらはすべて、将来のプログラムのタスクです。
学生は、Windowsデスクトップでスプラッシュスクリーンとして実行できるかどうかを尋ねました。 これがどのように行われるかがわかるまで。
ソース:
Pythonドキュメント
http://www.ilnurgi1.ru/docs/python/modules/tkinter/colorchooser.htmlPython Tkinterライブラリコースヘルパー:
Tkinterの概要
http://habrahabr.ru/post/133337Tkinterライブラリを使用してPythonでGUIを作成します。 初心者向けプログラミング
http://younglinux.info/book/export/html/48英語の色名の表
http://www.falsefriends.ru/english-colors.htm