<< Visual StudioでPython(パイソン)を使ってみる3 | main | iPadでPythonを使う(Pythonista3 基本操作編) >>

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

 

前回からの続きです。

 

データの挿入と削除を作ってみます。

そうすれば、自動的にデータの修正になります。

 

 

挿入:

上の状態で、ffffの上にddddを挿入する場合には、キーボードのShift+Deleteのキーを押します。

削除:

また、ffffを削除するときは、キーボードのDeleteキーを押します。

 

該当部分のコードです。

 

#項目削除の関数
def Delete_press(event):
    Label1["text"] ="指定場所を削除しました"
    ListBox1.delete(ANCHOR,ACTIVE)
#項目の挿入
def Ins_press(event):
    Val = TextBox1.get()
    Label1["text"] = Val + " を挿入しました"
    ListBox1.insert(ACTIVE,Val)
    TextBox1.delete(0,END)

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

#リストボックス
ListBox1 = Listbox(root,height=10,width=30)
ListBox1.grid(column=0,row=0,rowspan=4,padx=5,pady=5)
ListBox1.bind("<Delete>",Delete_press)
ListBox1.bind("<Shift-Delete>",Ins_press)

 

以上

 

説明:

リストボックスでイベント発生(.bind)でDelete_press,Ins_pressの関数を作ります。

 

削除:

Delete_pressの

ListBox1.delete(ANCHOR,ACTIVE)

のANCHORは左マウスを押したときの位置

ACTIVEは左マウスを離した位置です。

 

挿入:

Ins_pressの

ListBox1.insert(ACTIVE,Val)

ACTIVEは左マウスを離した位置で、その前に値(変数Val)が挿入されます。

 

下は、全体のコードです。

# -*- coding: utf8 -*-

from tkinter import *
#入力の関数
def button_click():
    Val = TextBox1.get()
    Label1["text"] = Val + " を入力しました"
    ListBox1.insert(END,Val)
    TextBox1.delete(0,END)
#ファイル保存の関数
def button_click1():
    file_a = open('testfile.dat','w')
    List_num = ListBox1.index(END)
    for N in range(List_num):
        file_a.write(str(ListBox1.get(N) + '¥n'))
    file_a.close()
    Label1["text"] = "保存しました"
#ファイルから呼び込み関数
def button_click2():
    file_a = open('testfile.dat')
    line1 = file_a.read()
    file_a.close()
    line1 = line1.split()
    for N in line1:
        ListBox1.insert(END,N)
    Label1["text"] = "呼び込みました"
#エンターキーで入力関数
def enter_press(event):
    button_click()
#項目削除の関数
def Delete_press(event):
    Label1["text"] ="指定場所を削除しました"
    ListBox1.delete(ANCHOR,ACTIVE)
#項目の挿入
def Ins_press(event):
    Val = TextBox1.get()
    Label1["text"] = Val + " を挿入しました"
    ListBox1.insert(ACTIVE,Val)
    TextBox1.delete(0,END)

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

#リストボックス
ListBox1 = Listbox(root,height=10,width=30)
ListBox1.grid(column=0,row=0,rowspan=4,padx=5,pady=5)
ListBox1.bind("<Delete>",Delete_press)
ListBox1.bind("<Shift-Delete>",Ins_press)

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

#入力ボックス
TextBox1 = Entry(width=25)
TextBox1.grid(column=2,row=0)
TextBox1.bind("<Return>",enter_press)

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

#ボタン2
Button2 = Button(text=u'保存ボタン',width=20,command=button_click1)
Button2.grid(column=2,row=2,columnspan=2,pady=5)

#ボタン3
Button3 = Button(text=u'呼込ボタン',width=20,command=button_click2)
Button3.grid(column=2,row=3,columnspan=2,pady=5)

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

root.mainloop()

 

 

まだ、付け加えた機能はたくさんありますが、

これ以上コードが長くなると読んでもらうのが大変になりますので

 

一応これで、メモ帳ソフトのかたち(プロトタイプ)にはなっていますので、

いろいろと応用はきくと思います。

あとは、自由に改変してみてください。

 

また、作ったソフトをWindowsで簡単に実行するには、プロパティで

 

 

Python(通常 C:¥Program Files¥Python36¥Python.exe)に変えてください。

 

 

 

次回からは、ipadでPythonを試してみます。

 

 

次回、iPadでPythonを使うに続く

 

 

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

| python | 14:47 | 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