Tkinter에서 탭 사용

10843 단어 Tkinter파이썬
  • Tkinter를 사용하여 GUI 응용 프로그램을 만들 때 탭을 사용합니다.
  • 객체 지향으로 작성.

  • 실행 결과



    tab1





    tab2





    say hello 버튼을 누르면 다음이 표시됩니다.
    Hello World at tab2
    

    코드


    #!venv/bin/python
    # -*- coding: utf8 -*-
    
    import tkinter as tk
    import tkinter.ttk as ttk
    
    
    class Application(ttk.Notebook):
        def __init__(self, master=None):
            super().__init__(master)
            self.master.title('window')
    
            tab1 = tk.Frame(self.master)
            self.add(tab1, text="tab1")
            Tab1(master=tab1)
    
            tab2 = tk.Frame(self.master)
            self.add(tab2, text="tab2")
            Tab2(master=tab2)
    
            self._quit_outside_widget()
            self.pack()
    
        def _quit_outside_widget(self):
            quit = tk.Button(self.master,
                             text="QUIT at outside",
                             command=root.destroy)
            quit.pack(side=tk.BOTTOM)
    
    
    class Tab1(tk.Frame):
        def __init__(self, master=None):
            super().__init__(master)
            self._label_tab1_widget()
            self._quit_tab1_widget()
            self.pack()
    
        def _label_tab1_widget(self):
            label = tk.Label(self, text='Hello World at tab1')
            label.pack()
    
        def _quit_tab1_widget(self):
            quit = tk.Button(self,
                             text="QUIT at tab1",
                             command=root.destroy)
            quit.pack(side=tk.BOTTOM)
    
    
    class Tab2(tk.Frame):
        def __init__(self, master=None):
            super().__init__(master)
            self._start_tab2_widget()
            self._quit_tab2_widget()
            self.pack()
    
        def _start_tab2_widget(self):
            start_button = tk.Button(self,
                                     text="say hello",
                                     command=self._hello)
            start_button.pack()
    
        def _quit_tab2_widget(self):
            quit = tk.Button(self,
                             text="QUIT at tab2",
                             command=root.destroy)
            quit.pack()
    
        def _hello(self):
            print("Hello World at tab2")
    
    
    if __name__ == '__main__':
        root = tk.Tk()
        app = Application(master=root)
        app.mainloop()
    

    widget의 계층 관계


  • ttk.Notebook (window)
  • tk.Frame (tab1)
  • tk.Label (hello)
  • tk.Button (quit)

  • tk.Frame (tab2)
  • tk.Button (hello)
  • tk.Button (quit)

  • tk.Button (quit)

  • 좋은 웹페이지 즐겨찾기