def createWidgets(self): self.panedWindow = ttk.Panedwindow(self, orient="vertical") self.panedWindow.grid(row=0, column=0, sticky="nsew") self.topPane = ttk.Panedwindow(self.panedWindow, orient="horizontal") self.bottomPane = ttk.Panedwindow(self.panedWindow, orient="horizontal") # second pane self.tlFrame = ttk.Labelframe(self.topPane, text='Pane1') self.trFrame = ttk.Labelframe(self.topPane, text='Pane2') # second pane self.blFrame = ttk.Labelframe(self.bottomPane, text='Pane3') self.brFrame = ttk.Labelframe(self.bottomPane, text='Pane4') self.panedWindow.add(self.topPane, weight=2) self.panedWindow.add(self.bottomPane, weight=1) self.topPane.add(self.tlFrame, weight=1) self.topPane.add(self.trFrame, weight=5) self.bottomPane.add(self.blFrame, weight=1) self.bottomPane.add(self.brFrame, weight=5) ''' #Stop frames from resizing based on the widgets they contain self.controlFrame.grid_propagate(False) self.previewFrame.grid_propagate(False) self.timelineFrame.grid_propagate(False) ''' #Create and configure other need widgets within each frame self.selectedFileBox = scrolledtext.ScrolledText(self.trFrame) self.selectedFileBox.grid(row=0, column=0, sticky="nsew")
def paned_window(self): self.panedwindow = ttk.Panedwindow(self.parent, orient = tk.HORIZONTAL) self.panedwindow.pack(expand = True, fill = tk.BOTH) self.left_pane = ttk.Frame(self.panedwindow, height = root.winfo_screenheight() - 140, relief = tk.SUNKEN) self.middle_pane = ttk.Frame(self.panedwindow, height = (root.winfo_screenheight() - 140), relief = tk.SUNKEN) self.right_pane = ttk.Frame(self.panedwindow, height = (root.winfo_screenheight() - 140), relief = tk.SUNKEN) self.panedwindow.add(self.left_pane, weight = 1) self.panedwindow.add(self.middle_pane, weight = 1) self.panedwindow.add(self.right_pane, weight = 10) self.panedwindow_left = ttk.Panedwindow(self.left_pane, orient = tk.VERTICAL) self.panedwindow_left.pack(expand = True, fill = tk.BOTH) self.pane_projects = ttk.Frame(self.panedwindow_left, height = (root.winfo_screenheight() - 140) / 2, relief = tk.SUNKEN) self.pane_actions = ttk.Frame(self.panedwindow_left, height = (root.winfo_screenheight() - 140) / 2, relief = tk.SUNKEN) self.panedwindow_left.add(self.pane_projects, weight = 1) self.panedwindow_left.add(self.pane_actions, weight = 1) self.panewindow_middle = ttk.PanedWindow(self.middle_pane, orient = tk.VERTICAL) self.panewindow_middle.pack(expand = True, fill = tk.BOTH) self.pane_canvas = ttk.Frame(self.panewindow_middle, relief = tk.SUNKEN) self.pane_resources = ttk.Frame(self.panewindow_middle, width = 100, relief = tk.SUNKEN) self.panewindow_middle.add(self.pane_canvas, weight = 5) self.panewindow_middle.add(self.pane_resources, weight = 1) self.menubar = Menubar(self.parent) self.properties = Properties(self.right_pane) self.canvas = Canvas(self.properties) self.toolbar = Toolbar(self.pane_canvas, self.canvas) self.project_explorer = ProjectExplorer(self.pane_projects) self.canvas.create_Ui(self.pane_canvas) self.actions = Actions(self.pane_actions, self.canvas, self.properties) self.resources = Resources(self.pane_resources)
def __init__(self, root): ttk.Frame.__init__(self, root) self.facts = [] self.BF = "" fait = ttk.Panedwindow(self, orient="horizontal") fait.pack(fill='both', padx=10, pady=10) faitCtrl = ttk.Frame(fait) ttk.Label(faitCtrl, text="Base des faits").pack() self.list = tk.Listbox(faitCtrl) self.list.bind("<<ListboxSelect>>", self.affiche) self.indice = 1 self.list.pack(side='top', fill='both', padx=10, pady=10) tk.Button(faitCtrl, text='Ajouter', bg="#83AF98", command=self.insert).pack(side='left', padx=10, pady=5) tk.Button(faitCtrl, text='Supprimer', bg="#83AF98", command=self.delete).pack(side='left', padx=10, pady=5) faitDef = ttk.Frame(fait) ttk.Label(faitDef, text="Fait").pack(side='top', fill='both', padx=10, pady=5) self.fact = tk.Text(faitDef, height=5) self.fact.bind('<Return>', self.insert) self.fact.pack(side='top', fill='both', padx=10, pady=5) fait.add(faitCtrl) fait.add(faitDef) fait_final = ttk.Panedwindow(self, orient="vertical") fait_final.pack(fill='both', padx=10, pady=10) self.label = ttk.Label(fait_final) fait_final.add(self.label) fait_final.add( tk.Button(fait_final, text='ouvrir ...', bg="#c48d84", command=self.open)) fait_final.add( tk.Button(fait_final, text='Enregistrer', bg="#c48d84", command=self.save)) fait_final.add( tk.Button(fait_final, text='Enregistrer sous ...', bg="#c48d84", command=self.save)) fait.pack() fait_final.pack() self.root = root
def __init__(self, master, controller, vertical=True): super().__init__(master, controller) self.components = [] if vertical: self.group = ttk.Panedwindow(self.frame, orient=VERTICAL) self.group.grid(column=0, row=0) else: self.group = ttk.Panedwindow(self.frame, orient=HORIZONTAL) self.group.grid(column=0, row=0)
def add_pane(parent, db_pane, command_pane_class, add_filler_pane=False): pane = ttk.Panedwindow(parent, orient=VERTICAL) command_pane_class(pane, db_pane) if add_filler_pane: pane.add(ttk.Panedwindow(pane, orient=VERTICAL)) return pane
def initUI(self): self.main_menu() self.subframe_right = tk.Frame(self.master, width=450, height=300) self.subframe_right.grid(row=0, column=1, padx=5, pady=3, sticky='nsew') self.p = ttk.Panedwindow(self.subframe_right, orient=tk.HORIZONTAL) self.q = ttk.Panedwindow(self.subframe_right, orient=tk.VERTICAL) self.draw_pane = ttk.Labelframe(self.p, text='', width=50, height=75, labelanchor='n') self.contig_pane = ttk.Labelframe(self.p, text='Select contig', width=100, height=75) self.p.add(self.contig_pane, weight=0) self.p.add(self.draw_pane, weight=0) self.p.grid(row=0, column=1, sticky='new') self.parameter_pane = ttk.Labelframe(self.q, text='Main parameters', width=150, height=200) self.annotation_pane = ttk.Labelframe(self.q, text='Annotation parameters', width=150, height=80) self.info_pane = ttk.Labelframe(self.q, text='Info', width=150, height=150) self.q.add(self.parameter_pane) self.q.add(self.annotation_pane) self.q.add(self.info_pane) self.q.grid(row=1, column=1, sticky='new') self.info_pane.columnconfigure(0, weight=5) self.info_box() self.text_frame() self.contig_menu() self.type_menu() self.draw_button() self.heat_menu() self.limit_menu() self.region_menu() self.anno_check() self.anno_type_menu() self.anno_limit_menu()
def __init__(self, root): Frame.__init__(self, root) self.canvas = Canvas(root, borderwidth=0, background="pink") self.frame0 = ttk.Frame(self.canvas) self.pw = ttk.Panedwindow(self.frame0, orient=HORIZONTAL) self.pw.pack(fill='x', expand=True) self.frame1 = ttk.Frame(self.pw) self.frame2 = ttk.Frame(self.pw) self.vsb = Scrollbar(root, orient="vertical", command=self.canvas.yview) self.hsb = Scrollbar(root, orient="horizontal", command=self.canvas.xview) self.canvas.configure(yscrollcommand=self.vsb.set) self.canvas.configure(xscrollcommand=self.hsb.set) self.vsb.pack(side="right", fill="y") self.hsb.pack(side="bottom", fill="x") self.canvas.pack(side="left", fill="both", expand=True) self.canvas.create_window((0, 0), window=self.frame0, anchor="nw", tags="self.pw") self.pw.add(self.frame1, weight=1) self.pw.add(self.frame2, weight=4) self.frame0.bind("<Configure>", self.onFrameConfigure) self.frame0.bind('<Enter>', self._bound_to_mousewheel) self.frame0.bind('<Leave>', self._unbound_to_mousewheel) self.populate()
def __init__(self, master=None, cnf={}, **kw): super().__init__(master=master, cnf=cnf, **kw) # Frame初始化 self.columnconfigure(0, weight=1) # 设置列权重 self.frame_button_main = FrameButtonMain(master=self, cnf=cnf, **kw) # 创建放置按钮的Frame self.frame_button_main.grid(row=0, column=0, sticky=NSEW) # 设置GRID布局,放置在第1行第1列 self.rowconfigure(1, weight=1) # 设置行权重 self.paned_win_v = ttk.Panedwindow( self, orient=VERTICAL) # 添加垂直方向(VERTICAL)的推拉窗组件 self.paned_win_v.grid(row=1, column=0, sticky=NSEW) # 设置GRID布局,放置在第2行第1列 self.frame_output = FrameOutput( # 创建放置output的Frame master=self.paned_win_v, # master为上面创建的垂直推拉窗 cnf=cnf, **kw # 传入其他参数 ) self.paned_win_v.add(self.frame_output, weight=1) # 往推拉窗中添加frame_output组件,并设置权重 self.frame_editor = FrameEditor( # 创建放置text_main的Frame master=self.paned_win_v, # master为上面创建的垂直推拉窗 cnf=cnf, stdout=self.frame_output.text_stdout.stdout, stderr=self.frame_output.text_stderr.stdout, **kw # 传入其他参数 ) self.paned_win_v.add(self.frame_editor, weight=1000) # 往推拉窗中添加frame_editor组件,并设置权重
def __init__(self, tk_root): self.pw = ttk.Panedwindow(tk_root, orient=tk.HORIZONTAL) self.pw.pack(fill=tk.BOTH, expand=True) self.frame1 = ttk.Frame(self.pw, width=100, height=500, relief=tk.SUNKEN,) self.frame2 = ttk.Frame(self.pw, width=300, height=500, relief=tk.SUNKEN,) self.frame3 = ttk.Frame(self.pw, width=75, height=500, relief=tk.SUNKEN,) # The "weight" parameter gives a relative sizing # This is based on orientation, which here is horizontal self.pw.add(self.frame1, weight=1) self.pw.add(self.frame2, weight=3) # This inserts into the 1st index (frame1 is at index 0) # You cannot insert at index 2. You would need to use .add() self.pw.insert(1, self.frame3,) # Adds a block of text to the first frame # Notice how self.frame1 is the parent, not tk_root self.lbl = tk.Label(self.frame1, text='Hello',).grid(row=0, column=0, padx=10, pady=25) # Adds a button to the second frame # Notice how self.frame3 is actually the middle frame # Notice how self.frame2 is the parent, not tk_root self.button = ttk.Button(self.frame2, text='Click',).grid(row=1, column=0, padx=20, pady=55)
def conclusion(window, row, column, columnspan): pane = ttk.Panedwindow(window, orient=tk.VERTICAL) pane.grid(row=row, column=column, columnspan=columnspan) # Pack to make visible # first pane, which would get widgets gridded into it: frame = ttk.Labelframe(pane, text='Balances') # Sub Total tk.Label(frame, text="Sub Total").grid(row=0, column=0, columnspan=1, padx=10, pady=5) sub_tot = tk.Entry(frame, width=15) sub_tot.grid(row=0, column=2, columnspan=1, padx=10, pady=5) # Discount tk.Label(frame, text="Discount").grid(row=1, column=0, columnspan=1, padx=10, pady=5) temp = tk.StringVar(frame) temp.set("18%") # default value w = tk.OptionMenu(frame, temp, "8%", "18%", "28%") w.grid(row=1, column=1, columnspan=1, padx=10, pady=5) disc = tk.Entry(frame, width=15) disc.grid(row=1, column=2, columnspan=1, padx=10, pady=5) # Sub Total with Discount tk.Label(frame, text="Sub Total").grid(row=2, column=0, columnspan=1, padx=10, pady=5) sub_tot_d = tk.Entry(frame, width=15) sub_tot_d.grid(row=2, column=2, columnspan=1, padx=10, pady=5) # GST tk.Label(frame, text="GST").grid(row=3, column=0, columnspan=1, padx=10, pady=5) temp = tk.StringVar(frame) temp.set("18%") # default value w = tk.OptionMenu(frame, temp, "8%", "18%", "28%") w.grid(row=3, column=1, columnspan=1, padx=10, pady=5) gst = tk.Entry(frame, width=15) gst.grid(row=3, column=2, columnspan=1, padx=10, pady=5) # Total tk.Label(frame, text="Total").grid(row=4, column=0, columnspan=1, padx=10, pady=5) total = tk.Entry(frame, width=15) total.grid(row=4, column=2, columnspan=1, padx=10, pady=5) pane.add(frame)
def initWidgets(self): # 创建Style style = ttk.Style() style.configure("fkit.TPanedwindow", background='darkgray', relief=RAISED) # 创建Panedwindow组件,通过style属性配置分隔线 pwindow = ttk.Panedwindow(self.master, orient=VERTICAL, style="fkit.TPanedwindow") pwindow.pack(fill=BOTH, expand=1) first = ttk.Label(pwindow, text="第一个标签") # 调用add方法添加组件,每个组件一个区域 pwindow.add(first) okBn = ttk.Button( pwindow, text="第二个按钮", # 调用remove()方法删除组件,该组件所在区域消失 command=lambda: pwindow.remove(okBn)) # 调用add方法添加组件,每个组件一个区域 pwindow.add(okBn) entry = ttk.Entry(pwindow, width=30) # 调用add方法添加组件,每个组件一个区域 pwindow.add(entry) # 调用insert方法插入组件 pwindow.insert(1, Label(pwindow, text='插入的标签'))
def __init__(self, master=None, **kw): super().__init__(master=master, **kw) # Frame初始化 self.rowconfigure(0, weight=1) # 设置行权重 self.columnconfigure(0, weight=1) # 设置列权重 # 添加水平方向(HORIZONTAL)的推拉窗组件 self.paned_win_h = ttk.Panedwindow(self, orient=HORIZONTAL) # 采用GRID布局,推拉窗放置在第1行第1列,如果有其他组件,可放置在其他行或者其他列 self.paned_win_h.grid(row=0, column=0, sticky=NSEW) self.text_stdout = EScrolledText( # 创建text组件 master=self.paned_win_h, # master为上面创建的水平推拉窗 height=self.conf.TEXT_OUTPUT_HEIGHT, # 设置text组件的高度 ) self.text_stdout.stdout(self.TEXT_STDOUT_NAME) # 在text组件中输出初始化信息 self.paned_win_h.add(self.text_stdout, weight=2) # 往推拉窗中添加text组件,并设置权重 self.text_stderr = EScrolledText( # 创建text组件 master=self.paned_win_h, # master为上面创建的水平推拉窗 height=self.conf.TEXT_OUTPUT_HEIGHT # 设置text组件的高度 ) self.text_stderr.stdout(self.TEXT_STDERR_NAME) # 在text组件中输出初始化信息 self.paned_win_h.add(self.text_stderr, weight=1) # 往推拉窗中添加text组件,并设置权重
def __init__(self, master=None, **kw): self.myname = type(self).__name__ if pydevprog: dbg.entersub() dbg.dprint(1, '->', self.myname) dbg.dprint(4, self.myname, "is pydevprog") cfg.widgets['class'][self.myname] = self super().__init__(master, **kw) self.pane = ttk.Panedwindow(master, orient='horizontal') self.L = ttk.Frame(self.pane) self.L.grid(column=0, row=0, sticky='nsew') self.L.rowconfigure(0, weight=1, minsize=50) self.L.columnconfigure(0, weight=1, minsize=50) self.R = ttk.Frame(self.pane) self.R.grid(column=0, row=0, sticky='nsew') self.L.rowconfigure(0, weight=1, minsize=100) self.L.columnconfigure(0, weight=1, minsize=50) self.pane.add(self.L, weight=1) self.pane.add(self.R, weight=3) self.pane.grid(column=0, row=0, sticky='nsew') if pydevprog: cfg.widgets['L'] = self.L cfg.widgets['R'] = self.R dbg.dprint(1, '<-', self.myname) dbg.leavesub()
def __init__(self, parent, controller): tk.Frame.__init__(self, parent) self.mainF2 = controller.mainF2 self.mainF3 = controller.mainF3 instruction = tk.Label( parent, text="Input the linear problem you are trying to solve below.", font=("Calibri", 15), background="#E3E3E3", anchor=tk.W) instruction.pack() p = ttk.Panedwindow(parent, orient="horizontal") self.editF1 = tk.LabelFrame(p, background="#A8A8A8", relief=tk.FLAT) self.editF2 = tk.LabelFrame(p, text='Problem Summary') self.editing = True self.solved = False self.c = [] self.A = [] self.b = [] self.equality = [] editBox = EditBox(self.editF1, self, controller) editBox.pack(expand=1, fill="both") p.add(self.editF1) p.add(self.editF2) p.pack(side=tk.TOP)
def __init__(self, parent, controller): tk.Frame.__init__(self, parent) p = ttk.Panedwindow(parent, orient='HORIZONTAL') # first pane, which would get widgets gridded into it: item_search = ttk.Labelframe(p, text='Item Search', width=375, height=375) item_history = ttk.Labelframe(p, text='Item Info', width=375, height=375) # second pane p.add(item_search) p.add(item_history) label = tk.Label(self, text="Menards Price Tracker", font=LARGE_FONT) label.pack(pady=10, padx=10) button3 = ttk.Button(self, text="Graph Page", command=lambda: controller.show_frame(PageThree)) button3.pack() ttk.Entry(self)
def __init__(self, master): self.master = master self.panedWindow = ttk.Panedwindow( self.master, orient=tk.HORIZONTAL ) # orient panes horizontally next to each other self.panedWindow.pack( fill=tk.BOTH, expand=True ) # occupy full master window and enable expand property self.frame1 = ttk.Frame(self.panedWindow, width=100, height=300, relief=tk.SUNKEN) self.frame2 = ttk.Frame(self.panedWindow, width=400, height=400, relief=tk.SUNKEN) self.panedWindow.add(self.frame1, weight=1) self.panedWindow.add(self.frame2, weight=3) self.button = ttk.Button(self.frame1, text='Add frame in Paned Window', command=self.AddFrame) self.button.pack()
def tampilanDepan(): rootframe = ttk.Frame(root) judul = ttk.Label(rootframe, text='Selamat Datang di Program Konversi Biner\n', style='Root.TLabel', padding='0 60 0 0') isi = ttk.Label(rootframe, text='1. Untuk masuk kedalam program konversi, anda harus login terlebih dahulu.\n2. Login details ID = Admin, Pass = Admin\n \ ', style='Isi.TLabel', padding='0 0 0 0') judul.pack() isi.pack() panedtime = ttk.Panedwindow(rootframe, orient=VERTICAL) noteDesimal = ttk.Labelframe(panedtime, text='Desimal', width=150, height=150) noteBiner = ttk.Labelframe(panedtime, text='Biner', width=150, height=150) noteHexa = ttk.Labelframe(panedtime, text='Hexa', width=150, height=150) panedtime.add(noteDesimal) panedtime.add(noteBiner) panedtime.add(noteHexa) panedtime.pack() def updateTimeText(): jam = bin(int(time.strftime("%H")))[2:].zfill(6) menit = bin(int(time.strftime("%M")))[2:].zfill(6) detik = bin(int(time.strftime("%S")))[2:].zfill(6) current = time.strftime("%H:%M:%S") current2 = "{}:{}:{}".format(jam,menit,detik) current3 = "{}:{}:{}".format(hex(int(jam,2))[2:],hex(int(menit,2))[2:],hex(int(detik,2))[2:]).upper() timeText.configure(text=current) timeBiner.configure(text=current2) timeHexa.configure(text=current3) root.after(1000, updateTimeText) timeText = ttk.Label(noteDesimal, text='', font=("Helvetica",25)) timeBiner = ttk.Label(noteBiner, text='', font=("Helvetica",25)) timeHexa = ttk.Label(noteHexa, text='', font=("Helvetica",25)) timeText.pack() timeBiner.pack() timeHexa.pack() updateTimeText() rootframe.pack(fill=BOTH, expand=YES)
def init(args: Any) -> None: global _root global _tab_manager global _parsed_args global _paned_window assert _root is None and _tab_manager is None and _parsed_args is None and _paned_window is None assert args is not None log.debug("init() starts") _parsed_args = args _root = tkinter.Tk( className="Porcupine") # class name shows up in my alt+tab list _root.protocol("WM_DELETE_WINDOW", quit) _root.report_callback_exception = _log_tkinter_error _paned_window = ttk.Panedwindow(_root, orient="horizontal") settings.remember_divider_positions(_paned_window, "main_panedwindow_dividers", [250]) _root.bind( "<<PluginsLoaded>>", lambda event: get_paned_window().event_generate( "<<DividersFromSettings>>"), add=True, ) _paned_window.pack(fill="both", expand=True) _tab_manager = tabs.TabManager(_paned_window) _paned_window.add(_tab_manager) # type: ignore[no-untyped-call] log.debug("init() done")
def buildTabs(self, parent: ttk.Notebook) -> None: """ Builds the individual tabs inside the tabbed layout design. Parameters ---------- parent : ttk.Notebook A tkinter object that can have tabs applied to it. Returns ------- None """ # For some reason, icons need to be member variables to display self.inputTabIcon = tk.PhotoImage(file='images/input-data-1.png') self.viewTabIcon = tk.PhotoImage(file='images/three-dim-graph.png') # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tab 1: Data Input # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - inputTab = ttk.Frame(parent, ) inputTab_kwargs = { 'text': 'Data Input', 'image': self.inputTabIcon, 'compound': tk.LEFT } parent.add(inputTab, **inputTab_kwargs) eb.buildInputElements( self, inputTab, ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tab 2: Visualizer # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - viewTab = ttk.Frame(parent, ) viewTab_kwargs = { 'text': 'Viewer', 'image': self.viewTabIcon, 'compound': tk.LEFT } parent.add(viewTab, **viewTab_kwargs) # - - - - - - - - - - - - - - - - # Holder for editor/viewer graphPanes = ttk.Panedwindow(viewTab, orient=tk.HORIZONTAL) graphPanes.pack(fill=tk.BOTH, expand=True) self.editPane, self.viewPane = eb.buildEditAndViewPanes(graphPanes) eb.buildEditorElements(self, self.editPane, self.plotCols, self.availableRuns, self.waitToPlot, self.startPlot) # Setting the starting run options cf.setRunOptions(self, )
def table(window, row, column, columnspan): pane = ttk.Panedwindow(window, orient=tk.VERTICAL) pane.grid(row=row, column=column, columnspan=columnspan) # Pack to make visible # first pane, which would get widgets gridded into it: frame = ttk.Labelframe(pane, text='Table') tk.Label(frame, text="S. No.").grid(row=0, column=0, columnspan=1, padx=10, pady=5) tk.Label(frame, text="Description of works").grid(row=0, column=1, columnspan=1, padx=10, pady=5) tk.Label(frame, text="Qty.").grid(row=0, column=2, columnspan=1, padx=(10, 5), pady=5) tk.Label(frame, text="Unit").grid(row=0, column=3, columnspan=1, padx=(0, 0), pady=5) tk.Label(frame, text="Rate").grid(row=0, column=4, columnspan=1, padx=10, pady=5) tk.Label(frame, text="Amount").grid(row=0, column=5, columnspan=1, padx=10, pady=5) # Tabular Row s_no = tk.Entry(frame, width=15) s_no.grid(row=1, column=0, columnspan=1, padx=10, pady=5) desc = tk.Entry(frame, width=84) desc.grid(row=1, column=1, columnspan=1, padx=10, pady=5) qty = tk.Entry(frame, width=15) qty.grid(row=1, column=2, columnspan=1, padx=10, pady=5) unit = tk.Entry(frame, width=15) unit.grid(row=1, column=3, columnspan=1, padx=10, pady=5) rate = tk.Entry(frame, width=15) rate.grid(row=1, column=4, columnspan=1, padx=10, pady=5) amt = tk.Entry(frame, width=15) amt.grid(row=1, column=5, columnspan=1, padx=10, pady=5) # Add row tk.Button(frame, text="Add row").grid(row=2, column=0, columnspan=1, padx=10, pady=5) # Add command later pane.add(frame)
def __init_labelframe(self, key): '''Add a label frame for widgets.''' f = ttk.Frame(self.set_frame[-1]) self.pane = ttk.Panedwindow(f, orient='vertical', width=400) self.lf = tk.LabelFrame(self.pane, text=self.p.label[key]) self.lf.config(borderwidth=2, width=400, relief='groove') self.pane.add(self.lf) self.pane.pack(side='left', fill='both') f.pack(fill='both')
def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) self.video_source = 0 self.vid = MyVideoCapture(self.video_source) panedwindow = ttk.Panedwindow(self, orient=HORIZONTAL) #close the webcam feed and gui window self.protocol("WM_DELETE_WINDOW", self.close) panedwindow.pack(fill=BOTH, expand=True) #Frame for displaying video from webcam (Leftside) vidFrame = ttk.Frame(panedwindow, width=self.vid.width, height=self.vid.height, relief=SUNKEN) #Frame for various other GUI elements (Rightside) container = ttk.Frame(panedwindow, width=100, height=400, relief=SUNKEN) panedwindow.add(vidFrame, weight=1) panedwindow.add(container, weight=4) #setting height and width for video frame based on webcam resolution self.canvas = tkinter.Canvas(vidFrame, width=self.vid.width, height=self.vid.height) self.canvas.pack() self.btn_snapshot = tkinter.Button(vidFrame, text="Snapshot", width=50, command=self.snapshot) self.btn_snapshot.pack(anchor=tkinter.CENTER, expand=True) self.delay = 15 self.update() #Function to update frames from webcam container.grid_rowconfigure(0, weight=1) container.grid_columnconfigure(0, weight=1) self.c = container self.frames = {} for F in (startPage, SelectCorrectOptions, SubmittedAnswers): frame = F(container, self) #startPage container frame.grid(row=0, column=0, sticky="nsew") self.frames[F] = frame self.show_frame(startPage) self.mainloop()
def __init__(self, master): master.title('Employees Attendance') master.resizable(False, False) master.configure(background='#e1d8b9') self.style = ttk.Style() self.style.configure('TFrame', background='#e1d8b9') self.style.configure('TButton', background='#e1d8b9', font=('Arial', 10)) self.style.configure('TLabel', background='#e1d8b9', font=('Arial', 10)) self.employee_id = StringVar() panedwindow = ttk.Panedwindow(master, orient=VERTICAL) panedwindow.pack(fill=BOTH, expand=True) self.top_frame = ttk.Frame(panedwindow, width=400, height=100, relief=SUNKEN) insert_emp_id = ttk.Label(self.top_frame, text="Insert employee id:") insert_emp_id.grid(row=0, column=0, padx=10, pady=25) emp_id_entry = ttk.Entry(self.top_frame, textvariable=self.employee_id) emp_id_entry.grid(row=0, column=1, padx=10, pady=25) mark_attendance_button = ttk.Button( self.top_frame, text="Mark attendance") # add command= mark_attendance_button.grid(row=0, column=2, padx=10, pady=25) self.bottom_frame = ttk.Frame(panedwindow, width=400, height=50, relief=SUNKEN) ttk.Button(self.bottom_frame, text='Add Employee').grid(row=0, column=0, padx=5, pady=10, sticky='e') # add command= ttk.Button(self.bottom_frame, text='Delete Employee').grid(row=0, column=1, pady=10, sticky='w') # add command= panedwindow.add(self.top_frame) panedwindow.add(self.bottom_frame) self.status_text = StringVar('') status = Label(master, textvariable=self.status_text, bd=1, relief=SUNKEN, anchor=W) status.pack(side=BOTTOM, fill=X)
def __init__(self, master): global result_box master.title('USGS Earthquake Data') frame0 = ttk.Panedwindow(master, orient=HORIZONTAL) frame0.pack(fill=BOTH, expand=True) frame1 = ttk.Frame(frame0, width=100, height=300, relief=SUNKEN) frame2 = ttk.Frame(frame0, width=500, height=300, relief=SUNKEN) frame0.add(frame1, weight=1) frame0.add(frame2, weight=4) Label(frame1, text="Sample period", bg="black", fg="white", justify=LEFT).pack(fill=X) self.period = StringVar() ttk.Radiobutton(frame1, text="Past Day", variable=self.period, value="day").pack(anchor='w') ttk.Radiobutton(frame1, text="Past Week", variable=self.period, value="week").pack(anchor='w') ttk.Radiobutton(frame1, text="Past Month", variable=self.period, value="month").pack(anchor='w') self.period.set("day") Label(frame1, text="Sort By", bg="black", fg="white", justify=LEFT).pack(fill=X) self.sortby = IntVar() ttk.Radiobutton(frame1, text="Magnitude", variable=self.sortby, value=0).pack(anchor='w') ttk.Radiobutton(frame1, text="Location", variable=self.sortby, value=1).pack(anchor='w') ttk.Radiobutton(frame1, text="Distance", variable=self.sortby, value=2).pack(anchor='w') self.sortby.set(0) result_button = ttk.Button(frame1) result_button.config(text="Get Results", command=self.submit) result_button.pack(anchor='s') result_box = Text(frame2, width=85, height=20) scrollbar = Scrollbar(frame2, orient=VERTICAL, command=result_box.yview) scrollbar.pack(side=RIGHT, fill=Y) result_box["yscrollcommand"] = scrollbar.set result_box.pack(side=LEFT, fill=BOTH, expand=YES)
def file_init(self): """ 初始化选择文件和操作按钮控件 :return:None """ # 创建Panedwindow组件 horizontal pwindow = ttk.Panedwindow(self, orient=HORIZONTAL) pwindow.pack(fill=X, expand=NO, padx=10, pady=10) filePath = StringVar() fileInput = ttk.Entry(self, width=80, textvariable=filePath) fileInput.pack(fill=None, expand=NO, ipady=5, side=LEFT, pady=5, padx=2) pwindow.add(fileInput) # 调用add方法添加组件,每个组件一个区域 def choose_fiel(): selectFileName = tk.filedialog.askopenfilename( title='选择文件') # 选择文件 filePath.set(selectFileName) self.compare_file = selectFileName pass btn_getfile = Button(self, text='选择文件', font=("仿宋", 18, "bold"), width=10, height=1, command=choose_fiel) btn_getfile.pack(fill=None, expand=NO, ipady=2, side=LEFT, pady=5, padx=2) pwindow.add(btn_getfile) btn_getfile = Button(self, text='开始对比', font=("仿宋", 18, "bold"), width=10, height=1, command=self.run_Compare) btn_getfile.pack(fill=None, expand=NO, ipady=2, side=LEFT, pady=5, padx=2) self.button = btn_getfile pwindow.add(btn_getfile) pass
def initWidgets(self): # 创建style对象,用来管理ttk组件样式 style = ttk.Style() style.configure("fkit.TPanedwindow", background="darkgray", relief=RAISED) pwindow = ttk.Panedwindow(self.master, orient=VERTICAL, style="fkit.TPanedwindow") pwindow.pack(fill=BOTH, expand=1) # 创建Panedwindow组件,通过style属性设置分割线 self.first = Label(pwindow, text="hello world", height=2, font=('Verdana', 10), fg='green') # 调用add方法添加组件,每个组件占一个区域 pwindow.add(self.first) # 创建button按钮 okBn = Button( pwindow, text="on", width=30, height=2, bg='pink', fg='black', command=self.open_on # 点击按钮调用self.open_on实例 ) okBn2 = Button(pwindow, text="off", width=30, height=2, bg='pink', fg='black', command=self.open_off) okBn3 = Button(pwindow, text="reboot", width=30, height=2, bg='pink', fg='black', command=self.open_reboot) okBn4 = Button(pwindow, text="Enter", width=30, height=2, bg='pink', fg='black', command=self.open_enter) # 调用add方法加入这些button pwindow.add(okBn) pwindow.add(okBn2) pwindow.add(okBn3) pwindow.add(okBn4)
def main(): global root, phase, sourceFileString, noiseFileString mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) p = ttk.Panedwindow(mainframe, orient=HORIZONTAL) p.grid(column=1,row=1,sticky=(N,W,E,S)) # first pane, which would get widgets gridded into it: f1 = ttk.Labelframe(p, text='Source Audio', width=400, height=300) ttk.Label(f1, text="Press \"A\" to choose the noise file", command=getSourceFileString()).grid(sticky=W) ttk.Label(f1, textvariable=sourceFileString).grid( sticky=(W, E)) p.add(f1) f2 = ttk.Labelframe(p, text='Noise Audio', width=400, height=300) # second pane ttk.Label(f2, text="Press \"K\" to choose the noise file", command=getNoiseFileString()).grid(sticky=W) ttk.Label(f2, textvariable=noiseFileString).grid(sticky=W) #f2.pack() p.add(f2) secondaryPane = ttk.Panedwindow(mainframe, orient=VERTICAL) secondaryPane.grid(column=1,row=2,sticky=(N,W,E,S)) ttk.Label(secondaryPane, text="Press the space bar to slice the audio files", command=sliceAudio()).grid(sticky="W") ttk.Label(secondaryPane, text="Output:").grid(sticky=W) ttk.Label(secondaryPane, textvariable=outputFileString).grid(sticky=W) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) root.bind('a', getSourceFileString) root.bind('k', getNoiseFileString) root.bind('<space>',sliceAudio) phase += 1 # Let the window wrap all of the content we just loaded and then # prevent it from resizing root.resizable(FALSE,FALSE) root.mainloop()
def __init__(self,root): Frame.__init__(self,root) # Title of the UI self.label = ttk.Label(root, text = "File Moving UI", justify = CENTER, font = ('Courier', 13, 'bold')) self.label.pack() # Creation of the paned window self.panedwindow = ttk.Panedwindow(root, orient = VERTICAL) self.panedwindow.pack(expand = False) self.frame1 = ttk.Frame(self.panedwindow, width = 600, height = 400) self.frame2 = ttk.Frame(self.panedwindow, width = 600, height = 200) self.frame3 = ttk.Frame(self.panedwindow, width = 600, height = 50, relief = SUNKEN) self.frame4 = ttk.Frame(self.panedwindow, width = 600, height = 50, relief = SUNKEN) self.frame5 = ttk.Frame(self.panedwindow, width = 600, height = 25) self.panedwindow.add(self.frame1, weight = 1) self.panedwindow.add(self.frame2, weight = 4) self.panedwindow.add(self.frame3, weight = 4) self.panedwindow.add(self.frame4, weight = 4) self.panedwindow.add(self.frame5, weight = 1) # Frame1 instructions self.instructions = ttk.Label(self.frame1, text = "In order to execute the file transfer for files modified within the last 24 hours, please select an initial and destination folder. You may check eligible files for the file transfer with the 'Show Eligible Files' button after selecting an initial folder", justify = CENTER, font = ('Courier', 12)) self.instructions.config(wraplength = 600) self.instructions.pack() # Source/Destinations self.field1 = ttk.Label(self.frame3, text = "Source Folder:") self.field2 = ttk.Label(self.frame4, text = "Destination Folder:") self.field1.grid() self.field2.grid() # Define buttons self.browse = ttk.Button(self.frame2, text = "Browse Initial Folder", command = lambda:sqlliteFunc.folderselect1(self)) self.browse2 = ttk.Button(self.frame2, text = "Browse Destination Folder", command = lambda:sqlliteFunc.folderselect2(self)) self.button = ttk.Button(self.frame2, text = "Show Eligible Files", command = lambda:sqlliteFunc.show_files(self), state = 'disabled') self.executer = ttk.Button(self.frame2, text = "Execute File Transfer", command = lambda:sqlliteFunc.the_mover(self), state = 'disabled') # Placing buttons down on grid self.browse.grid(row = 0, column = 1, padx = 40) self.browse2.grid(row = 0, column = 2, padx = 40) self.button.grid(row = 0, column = 3, padx = 40) self.executer.grid(row = 0, column = 4, padx = 40) self.path = '' self.destination = '' self.LbStamp = ttk.Label(self.frame5, text = "Last File Check at:") self.LbStamp.pack() sqlliteFunc.create_db(self) sqlliteFunc.timer(self)
def _setup_desc_ui(self, parent): """Initialize the description editors of the view. TODO: Add Novan description validation. Parameters: parent: The parent widget. """ parent.columnconfigure(0, weight=1) parent.rowconfigure(0, weight=1) desc_label = ttk.Labelframe(parent, text='Description') desc_label.grid(sticky='nsew') desc_label.columnconfigure(0, weight=1) desc_label.rowconfigure(0, weight=1) desc = ttk.Panedwindow(desc_label, orient=VERTICAL) desc.grid(sticky='nsew') # Labelframes nvn_desc_label = ttk.Labelframe(desc, text='Novan') en_desc_label = ttk.Labelframe(desc, text='English') nvn_desc_label.grid(sticky='nsew') en_desc_label.grid(sticky='nsew') nvn_desc_label.columnconfigure(0, weight=1) en_desc_label.columnconfigure(0, weight=1) nvn_desc_label.rowconfigure(0, weight=1) en_desc_label.rowconfigure(0, weight=1) desc.add(nvn_desc_label) desc.add(en_desc_label) # Text fields # Novan self.text_nvn_desc = VarText(nvn_desc_label, wrap="word", height=10, width=60, variable=self.nvn_description_controller.nvn) self.text_nvn_desc.grid(sticky='nsew', column=0, row=0) nvn_scrollbar = ttk.Scrollbar(nvn_desc_label, orient=VERTICAL, command=self.text_nvn_desc.yview) self.text_nvn_desc.configure(yscrollcommand=nvn_scrollbar.set) nvn_scrollbar.grid(sticky='nse', column=1, row=0) # English self.text_en_desc = VarText(en_desc_label, wrap="word", height=10, width=60, variable=self.var_en_desc) self.text_en_desc.grid(sticky='nsew', column=0, row=0) en_scrollbar = ttk.Scrollbar(en_desc_label, orient=VERTICAL, command=self.text_en_desc.yview) self.text_en_desc.configure(yscrollcommand=en_scrollbar.set) en_scrollbar.grid(sticky='nse', column=1, row=0) # Bindings self.text_nvn_desc.bind("<KeyRelease>", self.update) self.text_en_desc.bind("<KeyRelease>", self.update)
def __init__(self, *args: Any, preview_dir, **kwargs: Any) -> None: super().__init__(*args, **kwargs) self.images = {} self.load_images( { "txt_icon": "file-text.png", "graph_icon": "file-graph.png", "log_icon": "file-log.png", "open_button": "open.png", "save_button": "save.png", "save_all_button": "save_all.png", "run_button": "run.png", "clear_button": "clear.png", } ) self.preview_dir = preview_dir self.programstate = ProgramState(self, self.preview_dir) # make directory for graph previews os.mkdir(os.path.join(self.preview_dir, "graph_previews")) self.panes = ttk.Panedwindow(self, orient="horizontal") self.panes.grid(row=8, column=0, sticky="nsew") self.create_top_frame() self.create_parameters_frame() self.create_filelist_frame() self.create_preview_frame() ttk.Separator(self, orient="horizontal").grid(row=1, column=0, sticky="we") self.input_file = tk.StringVar() ttk.Label(self, text="Input file").grid(row=2, column=0, sticky="w") ttk.Entry(self, textvariable=self.input_file).grid(row=3, column=0, sticky="we") # spacing ttk.Label(self, font=tkfont.Font(size=5)).grid(row=4, column=0) self.reference_file = tk.StringVar() ttk.Label(self, text="Reference").grid(row=5, column=0, sticky="w") ttk.Entry(self, textvariable=self.reference_file).grid( row=6, column=0, sticky="we" ) ttk.Label(self, font=tkfont.Font(size=5)).grid(row=7, column=0) self.rowconfigure(8, weight=1) self.columnconfigure(0, weight=1) self.grid(row=0, column=0, sticky="nsew")