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()

0 件のコメント:

コメントを投稿

About

参加ユーザー

連絡フォーム

名前

メール *

メッセージ *

ページ

Featured Posts