tkinter按需添加标签

时间:2019-03-24 11:15:38

标签: python tkinter frame

我将自己的ui分隔在ui.py文件中。 我的用户界面有两页,第一页仅用作起始页,第二页显示实际内容。 第二页本身将包含显示某些信息的多个选项卡。

import tkinter as tk
from tkinter import *
from tkinter import ttk
from modules import callerfile


class Page(tk.Frame):
    def __init__(self, *args, **kwargs):
        tk.Frame.__init__(self, *args, **kwargs)
    def show(self):
        self.lift()

class Page1(Page):
   def __init__(self, *args, **kwargs):
       Page.__init__(self, *args, **kwargs)
       label = tk.Label(self, text="Drag a suport tool archive here ")
       label.pack(side="top", fill="both", expand=True)

class Page2(Page):
   def __init__(self, *args, **kwargs):
       Page.__init__(self, *args, **kwargs)
       nb = ttk.Notebook(self)
       tab1 = ttk.Frame(nb)
       tab2 = ttk.Frame(nb)
       nb.add(tab1, text='1')
       tab1.label = tk.Label(tab1, text="text to change")
       nb.add(tab2, text='2')
       nb.pack(expand=0, fill="both")

class MainView(tk.Frame):
    def __init__(self, *args, **kwargs):
        tk.Frame.__init__(self, *args, **kwargs)
        self.pages = {
            "p1": Page1(self),
            "p2": Page2(self),
        }
        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        self.pages["p1"].place(in_=container, x=0, y=0, relwidth=1, relheight=1)
        self.pages["p2"].place(in_=container, x=0, y=0, relwidth=1, relheight=1)
        self.show("p1")

    def show(self, page_name):
        page = self.pages[page_name]
        page.show()


if __name__ == "__main__":
    root = tk.Tk()
    main = MainView(root)
    main.show("p1")
    root.resizable(0, 0)
    menubar = Menu(root)
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="Open", command=lambda: fopen.openzipdialog(main))
    filemenu.add_separator()
    filemenu.add_command(label="Exit", command=root.quit)
    menubar.add_cascade(label="File", menu=filemenu)
    root.config(menu=menubar)
    main.pack(side="top", fill="both", expand=True)
    root.wm_geometry("500x500")
    root.title("mytool")
    root.mainloop()

如何添加一个功能以使用标签填充Page2“按需”的Tab1? 我需要从另一个py文件中调用它,因为标签内容来自仅在某些步骤后才能执行的函数。

0 个答案:

没有答案