2019年12月13日金曜日
tkinter 2つのイベント
//
tkinter --- Tcl/Tk の Python インタフェース
https://docs.python.org/ja/3/library/tkinter.html
コマンドラインから python -m tkinter を実行すると簡素な Tk インターフェー
スを表示するウィンドウが開き、システムに tkinter が正しくインストール
されたことが分かり、さらにインストールされた Tcl/Tk がどのバーションな
のかが表示されるので、そのバージョンの Tcl/Tk ドキュメントを選んで読め
ます。
///
となっているので python -m tkinter としても動作しない
python -m Tkinter とやる
バージョンは 8.6 とでた。
Tkinter reference: a GUI for Python をクリックすると
8.5となっていたがそれで読み解く
buttonにはウィジットオプションにcommandがあるように 別のウィジットにも
***commandがあって何かイベントを 受けられるようになっているようだ。
かつ
///
Tkinter 8.5リファレンス:Python用のGUI
http://translate.google.com/translate?hl=ja&sl=auto&tl=ja&u=https%3A%2F%2Fwe
ただし、 Tkinterのイベントバインド機能を使用すると、動作を追加、変更、
または削除できます。
///
という事で
self.canv.bind( '<Button-2>'、self .__ drawOrangeBlob)
self.bind_class( 'Canvas'、 '<Button-2>'、
self .__ drawOrangeBlob)
とすると個々のウィジット、クラスに特定のイベントに結びつける事ができる。
self.bind_all( '<Key-Print>'、self .__ printScreen)
とすると全ての widget を同じ Event を結び付ける事になるようだ。
~
#! /usr/bin/env python
#coding: utf-8
#@@@ ボタンイベント
#@@@ イベントを拾うのに2つの種類があるようだ。
# two_event.txt 参照
import Tkinter as Tk
class Frame(Tk.Frame):
def __init__(self, master=None):
Tk.Frame.__init__(self, master)
self.bt1 = Tk.Button(self, text='bt1',
command=self.bt1_click)
self.bt1.pack(fill=Tk.BOTH)
self.bt2 = Tk.Button(self, text='bt2')
self.bt2.bind('<1>', self.bt2_click)
self.bt2.pack(fill=Tk.BOTH)
def bt1_click(self):
print "bt1_click"
def bt2_click(self, event):
print "bt2_click"
if __name__=='__main__':
f = Frame()
f.pack()
f.mainloop()
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿