2013-05-10 1 views
1
referwork = ttk.Notebook(root, style =".TNotebook") 
f1 = ttk.Frame(referwork) 
f2 = ttk.Frame(referwork) 
referwork.add(f1, text="Search", padding = 1) 
referwork.add(f2, text="Add/Delete", padding = 1) 

#referwork.configure (height = 500, width = 800) 
referwork.grid(row=0, column=0, sticky=(N,W,S,E)) 

나는 두 개의 탭으로 구성된 노트북을 만들기 위해 위에서 사용했다. 처음에는 검색이 수행됩니다. 내가하고 싶은 것은 messagebox.askyesno 때 나타나는 메시지 상자에 경고를하는 것입니다 '예'노트북tkinter messagebox 링크 to 노트북 page

messagebox.askyesno(0.0,'"{0}"{1} \n {2}\n'.format(search_analyte.get(),' is not in the database.','Add,if appropriate')) 
     if True: 

의 두 번째 페이지로 포커스가 이동까지 내가 가지고 같은 것을 선택 . 이 대화 상자와 조건부를 사용하여 두 번째 페이지를 '여는 방법'을 파악할 수 없습니다. 어떤 도움을 주셔서 감사합니다

답변

1

Notebook.select(tab) 메서드를 사용하십시오. 여기에서 tab은 노트북 하위 위젯 중 하나입니다.

from tkinter import * 
from tkinter.ttk import * 
from tkinter.messagebox import askyesno 

def open_first(): 
    referwork.select(f1) 
def open_second(): 
    if askyesno('Title', 'Press "Yes" to open second page') == YES: 
     referwork.select(f2) 

root = Tk() 
referwork = Notebook(root, style =".TNotebook") 
f1 = Frame(referwork) 
f2 = Frame(referwork) 
Button(f1, text='Go =>', command=open_second).pack(padx=100, pady=100) 
Button(f2, text='<= Go', command=open_first).pack(padx=100, pady=100) 
referwork.add(f1, text="Search", padding = 1) 
referwork.add(f2, text="Add/Delete", padding = 1) 
referwork.grid(row=0, column=0, sticky=(N,W,S,E)) 
root.mainloop() 
+0

감사합니다. True 인 경우 사용 : open_second() – user1478335