tkinterを使用したPythonグラフィックプログラムの作成

学生や生徒と一緒に仕事をする中で、プログラミング言語を勉強するとき、グラフィックスを扱うことは非常に興味深いことに気付きました。 フィボナッチ数に関する課題に飽き飽きしていて、言語の学習に興味を失ったように思われる学生でさえ、グラフィックスに関連するトピックについてより積極的になりました。



したがって、tkinter(Pythonでグラフィカルインターフェイスを開発するためのクロスプラットフォームライブラリ)を使用して、Pythonで小さなグラフィカルプログラムを作成する練習を提案します。



この記事のコードは、Python 3.5用に作成されています。



割り当て :異なる色の円の任意のサイズをキャンバスに描画するプログラムを作成します。



難しいことではありません。プログラムは「子供向け」かもしれませんが、tkinterで何ができるかを鮮明に説明するために考えています。



まず、色の指定方法を説明します。 もちろん、コンピューターにとって便利な方法です。 このため、tkinterには次の方法で起動できる特別なツールがあります。



from tkinter import * window = Tk() colorchooser.askcolor()
      
      





コードの説明:





画像



注:以下のコメントで述べたように、アスタリスクはすべてをインポートするわけではなく、記述する方が信頼性が高くなります

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
      
      





コードの説明:





次に、ループを作成します。



 while diapason < 1000: colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime', ''#f55c4b'']) 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() diapason += 1
      
      





コードの説明:



 colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime', ''#f55c4b''])
      
      





円の色をランダムに選択するためのリストを作成します。 色の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.html

Python Tkinterライブラリコース



ヘルパー:

Tkinterの概要http://habrahabr.ru/post/133337

Tkinterライブラリを使用してPythonでGUIを作成します。 初心者向けプログラミングhttp://younglinux.info/book/export/html/48

英語の色名の表http://www.falsefriends.ru/english-colors.htm



All Articles