2016-08-30 16 views
0
from tkinter import * 
from tkinter import ttk 

class MainGame(Frame): 
    def __init__(self, parent): 
     Frame.__init__(self, parent) 
     self.parent = parent   
     self.initUI() 

    def tab_change(self, event): 
     tab_id = self.page.index('current') 
     print(tab_id, self.page.tab(tab_id, 'text')) 

    def initUI(self): 
     global canvas 
     self.parent.title('PythonPage') 
     self.pack(fill = BOTH, expand = 1) 
     self.page = ttk.Notebook(self, width = 646 ,height = 629) 
     self.page1 = Frame(self) 
     self.page2 = Frame(self) 
     self.page.add(self.page1, text = 'Tab1') 
     self.page.add(self.page2, text = 'Tab2') 
     self.page.bind('<ButtonPress-1>', self.tab_change) 
     self.page.pack(expand = 0, anchor = 'w', side = 'top') 

root = Tk() 
root.geometry('925x650') 
main = MainGame(root) 
root.mainloop() 

はIDと名前を表示できますが、正しく表示されません。Python ttkノートブックが選択したタブを間違って表示しています

Tab1をクリックすると、Tab2がクリックされましたが、まだ0 Tab1が印刷されています。もう1回クリックすると、1 Tab2が印刷されます。

Tab2クリックしてTab1をクリックすると、現在選択されているタブが1つ表示されます。

タブにダブルクリックが必要な理由を知りたいですか?そして、ワンクリックで選択したタブを正しく取得するにはどうすればいいですか?

答えて

0

変更を行います。

self.page.bind('<ButtonPress-1>', self.tab_change) 

self.page.bind('<ButtonRelease-1>', self.tab_change) 

ので、あなたが押されたボタンをリリースしていない限り、タブが変更されていません!

enter image description here

+0

ありがとう、私はちょうど彼らがボタンと同じだと思った – Montague27

関連する問題