<< Visual StudioでPython(パイソン)を使ってみる1 | main | Visual StudioでPython(パイソン)を使ってみる3 >>

Visual StudioでPython(パイソン)を使ってみる2

 

前回の続きです。

 

まず、確認してほしいのが、Pythonの環境です。

Python3.6(64-bit)になっているか?

なっていなければ、Python環境を追加/削除を選んでください。

下のように出ますので、Python3.6を選んで、OKボタンを押してください。

 

次に、検索パス(場所)にPython36がある場所を追加してください。

 

 

通常はC:¥Program Files¥Python36にありますので、フォルダを選択してください。

 

 

これで、準備は終了です。

 

何はともあれ、フレームを作ってみましょう。

# -*- coding: utf8 -*-

import tkinter

root = tkinter.Tk()
root.mainloop()

 

上をコピーアンドペースト等で入力してください

 

 

説明:

# -*- coding: utf8 -*-

文字コードはUTF-8です。(Python3では、デフォルトでUTF-8なのでなくてもかまいません。)

(Linuxのときは、#!/usr/bin/env pythonも入れてください)

 

import tkinter

tkinterというライブラリ(モジュール・クラス)を使いますということ

(import tkinter as tkとするとつぎからtkinterはtkという名前でつかえます。頭が

大文字のTkinterで説明されているものもありますが、Python3では、小文字のtkinterです。

また、from tkinter import *とするとtkinterの関数(メソッド)をすべて使いますということ。)

 

root = tkinter.Tk()

使いますと宣言しても実行されませんので、

rootという場所にTk()の関数を持ってきて初期化、実行します(インスタンス)

 

root.mainloop()

永久ループを実行します。

 

あとは、アタッチをクリックするか、PF5を押せば動きます。

 

終了するときは、✖をクリックしてください

 

このように、スプリクト言語(インタープリタ方式)は途中でも動きを確認できて非常に便利です。

 

次に、基本的な部品(Widget)の設定の仕方です。

今回は、リストボックス、スクロールバー、テキストボックス、ボタン、ラベルです。

 

# -*- coding: utf8 -*-

from tkinter import *

def button_click():
    Val = TextBox1.get()
    Label1["text"] = Val + " を入力しました"
    ListBox1.insert(END,Val)
    TextBox1.delete(0,END)

#本体
root = Tk()
root.title(u"テスト")
root.geometry("400x320")

#リストボックス
ListBox1 = Listbox(root,height=5,width=25)
ListBox1.grid(column=0,row=0,padx=5,pady=5)

#スクロールバー
scrollbar1 = Scrollbar(root,orient=VERTICAL,command=ListBox1.yview)
ListBox1['yscrollcommand'] = scrollbar1.set
scrollbar1.grid(column=1,row=0,sticky=W+N+S)

#入力ボックス
TextBox1 = Entry(width=25)
TextBox1.grid(column=0,row=1)

#ボタン
Button1 = Button(text=u'ボタン',width=20,command=button_click)
Button1.grid(column=0,row=2,columnspan=2,pady=5)

#ラベル
Label1 = Label(text=u'test')
Label1.grid(column=0,row=3,columnspan=2,pady=10,sticky=W)

root.mainloop()

 

 

をまた、コピーアンドペースト等で入力してください。

 

 

実行させると、下のようになります。

 

 

説明:

 

#本体
root = Tk()

:3行目でfrom tkinter import *となっているので、root=tkinter.Tk()のtkinterを省略できます。


root.title(u"テスト")

:本体のタイトルです。uはUTF-8のこと


root.geometry("400x320")

:本体の大きさです。

 

#リストボックス
ListBox1 = Listbox(root,height=5,width=25)

:ここもtkinterが省略、rootは配置する場所、heightは高さ(ここでは、文字数)、widthは幅


ListBox1.grid(column=0,row=0,padx=5,pady=5)

:gridは二次元で配置、columnは0列(X)目に、rowは0行(Y)目に配置、padxは左の空白、padyは上の空白

 

#スクロールバー

:自動的にはスクロールバーを付けれないので作ります。


scrollbar1 = Scrollbar(root,orient=VERTICAL,command=ListBox1.yview)

:orient=VERTICALは縦方向、command=ListBox1.yviewはリストボックスと関連づけます。

 

ListBox1['yscrollcommand'] = scrollbar1.set

:リストボックスのほうも関連づけます。


scrollbar1.grid(column=1,row=0,sticky=W+N+S)

:1列目の0行に、sticky=W+N+Sは左(West)に上下(NorthからSouth)に引き延ばしをする。

 

#入力ボックス
TextBox1 = Entry(width=25)

:ここもtkinterが省略、ついでにrootも省略、widthは幅


TextBox1.grid(column=0,row=1)

:0列目の1行に配置

 

#ボタン
Button1 = Button(text=u'ボタン',width=20,command=button_click)

:ここもtkinterが省略、ついでにrootも省略、textはボタン名、widthは幅、commandは押された時の関数名


Button1.grid(column=0,row=2,columnspan=2,pady=5)

:0列目の2行目に配置、columnspanは列を2つ繋ぐ、padyで5つ開ける

 

#ラベル
Label1 = Label(text=u'test')

:textは初期値


Label1.grid(column=0,row=3,columnspan=2,pady=10,sticky=W)

:0列目の3行目に配置、columnspanは列を2つ繋ぐ、padyで10つ開ける、stickyで左につめる(寄せ)

 

ボタンが押された時の関数は

def button_click():

:defが関数、button_click()が関数名


    Val = TextBox1.get()

:変数Valにテキストボックス(TextBox1)から値(.get())を得る


    Label1["text"] = Val + " を入力しました"

:ラベルに値を表示する。


    ListBox1.insert(END,Val)

:リストボックスの最後(END)に値を入れる


    TextBox1.delete(0,END)

:テキストボックスをクリアする。

 

テキストボックスに入力し、ボタンを押すとすると、ラベルに表示し、リストボックスに入ります。

 

 

他では、tkinterをクラス化にして使うのを標準にしているものもありますが、

個人で作るプログラムでは、そんなに大きなものは作りません。

簡単なものは、クラス化するとかえってコードが長くなり、理解しにくくなるため、

現在は行っていません。(また後日、説明する予定です。)

 

 

おもに、お気軽Python/Tkinter入門を参考にさせていただきました。

初心者にもわかりやすく、書かれています。

 

次回は、これを使って、簡単なアプリを作ってみます。

 

次回に続く

 

 

JUGEMテーマ:プログラミング

| python | 16:18 | comments(0) | trackbacks(0) |
Comment









Trackback
url: トラックバック機能は終了しました。

06
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
Profile
New entries
Archives
Categories
Recent comment
カウンター


今日
昨日
レンタルサーバ/プロバイダー




ファッション
カタログ通販ベルーナ(Belluna)

イマージュ - IMAGEアウトレットセール
yahoo・その他


買い物
ビックカメラ.com



Mobile
qrcode
Links
Others
無料ブログ作成サービス JUGEM