2016-08-30 8 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() 

tab_change может показывать свои идентификаторы и имена, но не правильно.Python ttk блокнот, отображающий выбранную вкладку неправильно

Когда Tab1 нажата, я нажал Tab2, но он по-прежнему печатать 0 Tab1, ему нужно еще один щелчок для печати 1 Tab2.

Tab2 Нажмите, чтобы Tab1 - это то же самое, ему нужно еще один щелчок, чтобы отобразить текущую выбранную вкладку.

Я хочу найти, почему вкладки нужно дважды щелкнуть? И как я могу получить выбранную вкладку правильно одним щелчком мыши?

ответ

0

Изменение:

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

To:

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

Потому что, если вы не выпустили нажатой кнопку, вкладка не изменилась!

enter image description here

+0

спасибо, я просто думал, что они так же, как кнопки – Montague27

Смежные вопросы