猫史档案馆


【Pythion Tkinter】窗口模板

用户:XiangQinxi(邦邦BON)XiangQinxi(邦邦BON)查看:0 回复:2 评论:0 创建时间:2021-08-31T18:20:45


代码:

from tkinter import *
from tkinter import ttk, messagebox

class Program(object):
    def __init__(self):
        self.Window = Tk()
        self.Window.title('Kats')
        self.Window.geometry('1200x685')
        self.Window.minsize(1200, 685)
        self.Window.maxsize(1200, 685)
        self.Window.update_idletasks()
        self.Window.overrideredirect(True)
        self.Move = IntVar(self.Window, value=0)
        self.X = IntVar(self.Window, value=0)
        self.Y = IntVar(self.Window, value=0)

    def Style_Settings(self):
        self.Window_BackGround_Style = ttk.Style()
        self.Window_BackGround_Style.configure("BackGround.TFrame",
                                               background="#2d2f2e")

        self.Window_Menu_Style = ttk.Style()
        self.Window_Menu_Style.configure("Menu.TFrame",
                                         background="#006ddb",
                                         borderwidth=2)

        self.Window_Menu_Style.configure("Menu.TButton",
                                         cursor="hand2",
                                         background="#006ddb",
                                         foreground="#48a4ff",
                                         activebackground="#006ddb",
                                         font="-family {Microsoft YaHei UI} -size 13")

        self.SelectArea_Style = ttk.Style()
        self.SelectArea_Style.configure("SelectArea.TFrame",
                                        background="#373737")

        self.SelectArea_Style.configure("SelectArea.TButton",
                                        background="#373737",
                                        foreground="#d6d6d6",
                                        activebackground="#373737",
                                        activeforeground="#d6d6d6")

        self.OperationArea_Style = ttk.Style()
        self.OperationArea_Style.configure("OperationArea.TFrame",
                                           background="#3e3e3e")

        self.OperationArea_Style.configure("HomePage.TFrame",
                                           background="#535353")
        self.OperationArea_Style.configure("HomePage.TLabel",
                                           background="#7b7b7b",
                                           foreground="#d2d2d2")

    def Window_Settings(self):
        self.Window_BackGround = ttk.Frame(self.Window, style="BackGround.TFrame")

    def Window_Show(self):
        self.Window_BackGround.place(x=0, y=0, width=1200, height=685)

    def Menu_Settings(self):
        self.Window_Menu = ttk.Frame(self.Window, cursor="crosshair", style="Menu.TFrame")
        self.Window_Menu_Close = ttk.Button(self.Window_Menu, text="✖", cursor="hand2", style="Menu.TButton", command=self.Window.destroy)

    def Menu_Show(self):
        self.Window_Menu.place(x=0, y=0, width=1200, height=40)
        self.Window_Menu_Close.place(x=1160, y=0, width=40, height=40)

    def SelectArea_Settings(self):
        self.Window_SelectArea = ttk.Frame(self.Window, style="SelectArea.TFrame")
        self.Window_SelectArea_Home = ttk.Button(self.Window_SelectArea, cursor="hand2", text="首页", style="SelectArea.TButton", command=self.SelectHomePage)

    def SelectArea_Show(self):
        self.Window_SelectArea.place(x=0, y=40, width=160, height=喵5)
        self.Window_SelectArea_Home.place(x=0, y=5, width=160, height=60)

    def OperationArea_Settings(self):
        self.Window_OperationArea = ttk.Frame(self.Window, style="OperationArea.TFrame")

        self.Window_OperationArea_HomePage = ttk.Frame(self.Window_OperationArea, style="HomePage.TFrame")
        self.Window_OperationArea_HomePage_HelloKats = ttk.Label(self.Window_OperationArea_HomePage, text="Hello,Kats", style="HomePage.TLabel", justify=CENTER)
        
    def OperationArea_Show(self):
        self.Window_OperationArea.place(x=160, y=40, width=1040, height=喵5)

    def SelectHomePage(self):
        self.Window_OperationArea_HomePage.place(x=10, y=10, width=1020, height=625)
        self.Window_OperationArea_HomePage_HelloKats.place(x=10, y=10, width=1005, height=55)

    def OnLeftButtonDown(self, event):
        self.X.set(event.x)
        self.Y.set(event.y)
        self.Move.set(1)

    def OnLeftButtonUp(self, event):
        self.Move.set(0)

    def OnLeftButtonMove(self, event):
        if self.Move.get() == 0:
            return
        self.NewX = self.Window.winfo_x() + (event.x - self.X.get())
        self.NewY = self.Window.winfo_y() + (event.y - self.Y.get())
        self.Geometry = f"1200x685+{self.NewX}+{self.NewY}"
        self.Window.geometry(self.Geometry)

    def EventBind(self):
        self.Window_Menu.bind("<Button-1>", self.OnLeftButtonDown)
        self.Window_Menu.bind("<ButtonRelease-1>", self.OnLeftButtonUp)
        self.Window_Menu.bind("<B1-Motion>", self.OnLeftButtonMove)

    def Run(self, N=0):
        self.Window.mainloop(N)

if __name__ == '__main__':
    Root = Program()
    Root.Style_Settings()
    Root.Window_Settings()
    Root.Window_Show()
    Root.Menu_Settings()
    Root.Menu_Show()
    Root.SelectArea_Settings()
    Root.SelectArea_Show()
    Root.OperationArea_Settings()
    Root.OperationArea_Show()
    Root.EventBind()
    Root.Run()

效果:

center_image


回复

上一页1 页 / 共 1下一页
财产喵财产喵

还行彳亍,看起来不错

点赞0


评论


1111101011111010

我不太习惯用类,还有……我有一个xp模拟窗口,您看看?

center_imagecenter_image

 

点赞0


评论