import tkinter from tkinter import * from tkinter.ttk import * from .batch_task.frame_tab import FrameTabsBatchTask from .start.frame_tab import FrameTabsStart from .sop.frame_tabs import FrameTabsSop class WinGUI(Tk): def __init__(self): super().__init__() self.__win() self.tk_tabs_main_tabs = Frame_main_tabs(self) def __win(self): self.title("轻马私域微信机器人助手") # 设置窗口大小、居中 width = 675 height = 510 screenwidth = self.winfo_screenwidth() screenheight = self.winfo_screenheight() geometry = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) self.geometry(geometry) self.resizable(width=False, height=False) def scrollbar_autohide(self, vbar, hbar, widget): """自动隐藏滚动条""" def show(): if vbar: vbar.lift(widget) if hbar: hbar.lift(widget) def hide(): if vbar: vbar.lower(widget) if hbar: hbar.lower(widget) hide() widget.bind("", lambda e: show()) if vbar: vbar.bind("", lambda e: show()) if vbar: vbar.bind("", lambda e: hide()) if hbar: hbar.bind("", lambda e: show()) if hbar: hbar.bind("", lambda e: hide()) widget.bind("", lambda e: hide()) def v_scrollbar(self, vbar, widget, x, y, w, h, pw, ph): widget.configure(yscrollcommand=vbar.set) vbar.config(command=widget.yview) vbar.place(relx=(w + x) / pw, rely=y / ph, relheight=h / ph, anchor='ne') def h_scrollbar(self, hbar, widget, x, y, w, h, pw, ph): widget.configure(xscrollcommand=hbar.set) hbar.config(command=widget.xview) hbar.place(relx=x / pw, rely=(y + h) / ph, relwidth=w / pw, anchor='sw') def create_bar(self, master, widget, is_vbar, is_hbar, x, y, w, h, pw, ph): vbar, hbar = None, None if is_vbar: vbar = Scrollbar(master) self.v_scrollbar(vbar, widget, x, y, w, h, pw, ph) if is_hbar: hbar = Scrollbar(master, orient="horizontal") self.h_scrollbar(hbar, widget, x, y, w, h, pw, ph) self.scrollbar_autohide(vbar, hbar, widget) class Frame_main_tabs(Notebook): def __init__(self, parent): super().__init__(parent) self.__frame() def __frame(self): self.tk_tabs_start = FrameTabsStart(self) self.add(self.tk_tabs_start, text="启动服务") self.tk_tabs_batch_task = FrameTabsBatchTask(self) self.add(self.tk_tabs_batch_task, text="群发管理") self.tk_tabs_sop = FrameTabsSop(self) self.add(self.tk_tabs_sop, text="SOP管理") self.place(x=0, y=0, width=675, height=510)