def __init__(self): wx.Frame.__init__(self, None, id=999, title="Surf Assistant Tool", size=(1024, 768)) self.Center() notebook = wx.Notebook(self) self.android_log = Notebook.AndroidCatchLog(parent=notebook) self.android_upgrade = Notebook.AndroidUpgrade(parent=notebook) self.ar_8020 = Notebook.AR8020(parent=notebook) notebook.AddPage(self.android_log, self.android_log.name) notebook.AddPage(self.android_upgrade, self.android_upgrade.name) notebook.AddPage(self.ar_8020, self.ar_8020.name)
def new_book_nopop(self, notebookname): self.notebookname = notebookname self.notebook_names.append(self.notebookname) self.notebook = note.Notebook(self.notebookname, self) self.notebook.add_notebook_gui(self.notebook_layout, self.notebookname) self.notebook_list.append(self.notebook) self.gui_notebook_page = self.notebook.set_current_section( self.notebook_layout) return self.notebook
def __init__(self): eeg4m = Eeg4mControl() desktop = DesktopDraw() self.tk = Tk() self.tk.protocol("WM_DELETE_WINDOW",self.exit) n = Notebook(self.tk) f1 = Frame(n()) EegGui(f1, eeg4m, desktop) f2 = Frame(n()) ErpGui(f2, eeg4m, desktop) f3 = Frame(n()) PlayerGui(f3,desktop) n.add_screen(f1, _("EEG")) n.add_screen(f2, _("ERP")) n.add_screen(f3, _("Player"))
def login(self): data = self.con.fetch_user() for i, j in data: if i == self.uname_ent.get() and j == self.pass_ent.get(): tkinter.messagebox.showinfo('Success', 'Welcome to Data Storage System.') self.wn.withdraw() self.login = Toplevel(self.wn) Notebook.Notebook(self.login) return else: tkinter.messagebox.showerror('Login Failed', 'Invalid Username or Password')
def new_book(self, popup): self.popup = popup client_response = self.popup.entry.get_text() if (not self.contains_notebook(client_response)): # save current work (new notebook will clear textview) self.buff.set_text("") self.notebookname = self.popup.entry.get_text() self.notebook_names.append(self.notebookname) self.notebook = note.Notebook(self.notebookname, self) self.pagename = self.popup.entry2.get_text() #self.page = tree.BinaryTree.Page(self.pagename) save_name = self.notebookname + '_' + self.pagename GLib.file_set_contents(save_name, '') #self.notebook.add(self.page) self.notebook.add(self.pagename) self.notebook_list.append(self.notebook) # adds notebook to gui self.notebook.add_notebook_gui(self.notebook_layout, self.notebookname) ##makes new page current page self.gui_notebook_page = self.notebook.set_current_section( self.notebook_layout) # adds page to gui self.notebook.add_page_gui(self.gui_notebook_page, self.pagename, self.notebookname) #sets new button active ''' for i in range(len(self.notebook.buttons)): if(self.notebook.buttons[i].get_label() == self.pagename): self.previous_button = self.active_button self.active_button = self.notebook.buttons[i] self.notebook.buttons[i].set_active(True) if(self.previous_button != None): self.previous_button.set_active(False) ''' self.previous_button = self.active_button self.active_button = self.notebook.buttons[0] self.active_button.set_active(True) if (self.previous_button != None): self.previous_button.set_active(False) self.save_notebook_contents() self.notebook_layout.show_all() else: self.win.check = False self.win.duplicate_false()
def insertFromMimeData(self, source): """ A function places the data in a window Parameters: source : PyQt5.QtCore.QMimeData QMimeData - class provides a container for data that records information about its MIME type. Returns: return - This is used for the same reason as break in loops. The return value doesn't matter and you only want to exit the whole function. It's extremely useful in some places, even though you don't need it that often. """ cursor = self.textCursor() document = self.document() if source.hasUrls(): for u in source.urls(): file_ext = note.splitext(str(u.toLocalFile())) if u.isLocalFile() and file_ext in note.IMAGE_EXTENSIONS: image = QImage(u.toLocalFile()) document.addResource(QTextDocument.ImageResource, u, image) cursor.insertImage(u.toLocalFile()) else: # If we hit a non-image or non-local URL break the loop and fall out # to the super call & let Qt handle it break else: # If all were valid images, finish here. return elif source.hasImage(): image = source.imageData() uuid = hexuuid() document.addResource(QTextDocument.ImageResource, uuid, image) cursor.insertImage(uuid) return super(TE, self).insertFromMimeData(source)
def __init__(self, top=None, adminInterfaz=None): '''This class configures and populates the toplevel window. top is the toplevel containing window.''' _bgcolor = '#d9d9d9' # X11 color: 'gray85' _fgcolor = '#000000' # X11 color: 'black' _compcolor = '#d9d9d9' # X11 color: 'gray85' _ana1color = '#d9d9d9' # X11 color: 'gray85' _ana2color = '#d9d9d9' # X11 color: 'gray85' self.style = ttk.Style() if sys.platform == "win32": self.style.theme_use('winnative') self.style.configure('.', background=_bgcolor) self.style.configure('.', foreground=_fgcolor) self.style.configure('.', font="TkDefaultFont") self.style.map('.', background=[('selected', _compcolor), ('active', _ana2color)]) top.geometry("999x712+520+140") top.title("Ventana principal") top.configure(background="#d9d9d9") top.configure(highlightbackground="#d9d9d9") top.configure(highlightcolor="black") #evitar problemas de paths, usa os THIS_FOLDER = os.path.dirname(os.path.abspath(__file__)) self.adminInterfaz = adminInterfaz #referencia al administrador de interfaz que se comunica con el admin de modelo para manejar la parte logica self.adminInterfaz.setMainWindow(self) self.CargarCategorias = Button(top) self.CargarCategorias.place(relx=0.12, rely=0.01, height=103, width=104) self.CargarCategorias.configure(activebackground="#d9d9d9") self.CargarCategorias.configure(activeforeground="#000000") self.CargarCategorias.configure(background="#d9d9d9") self.CargarCategorias.configure(disabledforeground="#a3a3a3") self.CargarCategorias.configure(foreground="#000000") self.CargarCategorias.configure(highlightbackground="#d9d9d9") self.CargarCategorias.configure(highlightcolor="black") self._img1 = PhotoImage( file=os.path.join(THIS_FOLDER, 'resources/categorias2.png')) self.CargarCategorias.configure(image=self._img1) self.CargarCategorias.configure(pady="0") self.CargarCategorias.configure(text='''categorias''') self.CargarArchivo = Button(top) self.CargarArchivo.place(relx=0.23, rely=0.01, height=104, width=105) self.CargarArchivo.configure(activebackground="#d9d9d9") self.CargarArchivo.configure(activeforeground="#000000") self.CargarArchivo.configure(background="#d9d9d9") self.CargarArchivo.configure(disabledforeground="#a3a3a3") self.CargarArchivo.configure(foreground="#000000") self.CargarArchivo.configure(highlightbackground="#d9d9d9") self.CargarArchivo.configure(highlightcolor="black") self._img2 = PhotoImage( file=os.path.join(THIS_FOLDER, "./resources/excel2.png")) self.CargarArchivo.configure(image=self._img2) self.CargarArchivo.configure(pady="0") self.CargarArchivo.configure(text='''archivo''') self.cargarFiltros = Button(top) self.cargarFiltros.place(relx=0.01, rely=0.01, height=103, width=104) self.cargarFiltros.configure(activebackground="#d9d9d9") self.cargarFiltros.configure(activeforeground="#000000") self.cargarFiltros.configure(background="#d9d9d9") self.cargarFiltros.configure(disabledforeground="#a3a3a3") self.cargarFiltros.configure(foreground="#000000") self.cargarFiltros.configure(highlightbackground="#d9d9d9") self.cargarFiltros.configure(highlightcolor="black") self._img3 = PhotoImage( file=os.path.join(THIS_FOLDER, "./resources/filtros3.png")) self.cargarFiltros.configure(image=self._img3) self.cargarFiltros.configure(pady="0") self.cargarFiltros.configure(text='''filtro''') self.generarCluster = Button(top) self.generarCluster.place(relx=0.834, rely=0.84, height=104, width=137) self.generarCluster.configure(activebackground="#d9d9d9") self.generarCluster.configure(activeforeground="#000000") self.generarCluster.configure(background="#d9d9d9") self.generarCluster.configure(disabledforeground="#a3a3a3") self.generarCluster.configure(foreground="#000000") self.generarCluster.configure(highlightbackground="#d9d9d9") self.generarCluster.configure(highlightcolor="black") self._img4 = PhotoImage( file=os.path.join(THIS_FOLDER, "./resources/cluster.png")) self.generarCluster.configure(image=self._img4) self.generarCluster.configure(pady="0") self.generarCluster.configure(text='''Ver Cluster''') self.generarCluster.configure(width=137) self.botonMerge = Button(top) self.botonMerge.place(x=10, rely=0.84, height=30, width=100) self.botonMerge.configure(activebackground="#d9d9d9") self.botonMerge.configure(activeforeground="#000000") self.botonMerge.configure(background="#d9d9d9") self.botonMerge.configure(disabledforeground="#a3a3a3") self.botonMerge.configure(foreground="#000000") self.botonMerge.configure(highlightbackground="#d9d9d9") self.botonMerge.configure(highlightcolor="black") self.botonMerge.configure(pady="0") self.botonMerge.configure(text='''Hacer merge''') self.ComboArchivoAMergear = ttk.Combobox(top, state="readonly", width=15) self.ComboArchivoAMergear.place(x=115, rely=0.84) self.insertarCambios() self.note = Notebook.Notebook(top, self) self.tablas = []
# Importing the libraies import Notebook import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler import pickle cleaned_portfolio, cleaned_profile, offers, transactions = Notebook.cleaning_data( ) # Resetting the index of varios dataframes cleaned_profile = cleaned_profile.reset_index() cleaned_profile = cleaned_profile.drop(['index'], axis=1) offers = offers.reset_index() offers = offers.drop(['index'], axis=1) transactions = transactions.reset_index() transactions = transactions.drop(['index'], axis=1) # Create function to combine transaction, offer, portfolio and profile datasets combined_data = [] # Initialize empty list for combined data customer_id_list = offers['person'].unique().tolist( ) # List of unique customers in offers_df # Iterate over each customer for i, cust_id in enumerate(customer_id_list):
def createNotebook(self): self.nb = Notebook.My_Notebook(self.pnl, -1) # Select initial items self.nb.SetSelection(0)
def init_notebook(self): self.notebooksync = NotebookSync() self.notebook = Notebook(self.topright, self.notebooksync, self.state, self.clipboard)
class Sketch(object): def __init__(self): self.init_state() self.init_window() self.init_panedWindows() self.init_notebook() self.init_nodeTb() self.init_toolbox() self.init_menubar() # dep: init_notebook self.init_directoryTree() self.init_dnd() self.clipboard_check() self.window.mainloop() # dep: init_window def init_dnd(self): try: tk.BaseWidget.dnd_parser = self.dnd_parser self.window.tk.call('package', 'require', 'tkdnd') self.panedwin.tk.call('tkdnd::drop_target', 'register', self.panedwin._w, ('DND_Files',)) drop_funct_id = self.panedwin._register(self.panedwin.dnd_parser) self.window.tk.call('bind', self.panedwin._w, '<<DropEnter>>', drop_funct_id+' %A %D %e %W') self.window.tk.call('bind', self.panedwin._w, '<<Drop>>', drop_funct_id+' %A %D %e %W') except: log("tkdnd package not found! Drag and drop disabled.") def dnd_parser(self, *args): if '<<DropEnter>>' in args: self.window.lift() if sys.platform.startswith('darwin'): # macOS self.window.attributes('-topmost', True) self.window.after_idle(root.attributes, '-topmost', False) else: paths = args[1].split(' ') for path in paths: if path.endswith('.sk') or path.endswith('.pth') or path.endswith('.net'): self.toolbox.import_model(filename=path) else: self.notebook.file_open(filepath=path) self.window.after(1, lambda: self.window.focus_force()) # brings focus back to window, repopulates menu return args def init_state(self): self.state = State() self.clipboard = Clipboard() def clipboard_check(self): # enables undo/redo on fresh install if self.state.dom['canvas'] == '': self.save_state() self.clipboard.add(self.state.export()) def init_window(self): self.window = Tk() self.window.title("Sketch") iconPath = os.path.join(os.getcwd(), 'images/Linear.png') #placeholder icon self.window.tk.call('wm', 'iconphoto', self.window._w, tk.PhotoImage(file=iconPath)) self.window.update_idletasks() # allows geometry calls prior to initialization #self.window.geometry('2000x1600') # wxh height = self.window.winfo_screenheight() // 5 * 3 #width = self.window.winfo_screenwidth() // 5 * 3 # dynamic wxh width = 2*height x = (self.window.winfo_screenwidth() // 2) - (width // 2) # center of screen y = (self.window.winfo_screenheight() // 2) - (height // 2) self.window.geometry('{}x{}+{}+{}'.format(width, height, x, y)) self.window.columnconfigure(0, weight=1) # 1 row, 1 column (0, 0) has all weight, allows stretching to border self.window.rowconfigure(0, weight=1) self.window.protocol("WM_DELETE_WINDOW", self.destroy_window) self.window.bind_class('Text', '<Button-3><ButtonRelease-3>', self.open_edit_menu) # allows right click and shortcuts in Textbox self.window.bind_class('Text', '<Control-a>', lambda e: e.widget.event_generate('<<SelectAll>>')) self.window.bind('<Escape>', self.destroy_window) self.window.bind('<Control-z>', self.undo_state) self.window.bind('<Control-Shift-Z>', self.redo_state) # Notebook tab style setup style = ttk.Style() self.images = ( tk.PhotoImage("img_close", data=''' R0lGODlhCAAIAMIBAAAAADs7O4+Pj9nZ2Ts7Ozs7Ozs7Ozs7OyH+EUNyZWF0ZWQg d2l0aCBHSU1QACH5BAEKAAQALAAAAAAIAAgAAAMVGDBEA0qNJyGw7AmxmuaZhWEU 5kEJADs= '''), #tk.PhotoImage("img_closeactive", data=''' # R0lGODlhCAAIAMIEAAAAAP/SAP/bNNnZ2cbGxsbGxsbGxsbGxiH5BAEKAAQALAAA # AAAIAAgAAAMVGDBEA0qNJyGw7AmxmuaZhWEU5kEJADs= # '''), tk.PhotoImage("img_closepressed", data=''' R0lGODlhCAAIAMIEAAAAAOUqKv9mZtnZ2Ts7Ozs7Ozs7Ozs7OyH+EUNyZWF0ZWQg d2l0aCBHSU1QACH5BAEKAAQALAAAAAAIAAgAAAMVGDBEA0qNJyGw7AmxmuaZhWEU 5kEJADs= ''') ) style.element_create("close", "image", "img_close", ("active", "pressed", "!disabled", "img_closepressed"), ("active", "!disabled", "img_close"), border=8, sticky='') style.layout("TNotebook", [("TNotebook.client", {"sticky": "nswe"})]) style.layout("TNotebook.Tab", [ ("TNotebook.tab", { "sticky": "nswe", "children": [ ("TNotebook.padding", { "side": "top", "sticky": "nswe", "children": [ ("TNotebook.focus", { "side": "top", "sticky": "nswe", "children": [ ("TNotebook.label", {"side": "left", "sticky": ''}), ("TNotebook.close", {"side": "left", "sticky": ''}), ] }) ] }) ] }) ]) style.configure("TNotebook.Tab", background='#aaaaaa', foreground='#000000', lightcolor='#e9e9e9', borderwidth=1) def init_menubar(self): self.menu = Menu(self.window) item_file = Menu(self.menu, tearoff=0) item_tab = Menu(item_file, tearoff=0) item_file.add_cascade(menu=item_tab, label='Tab Options') #item_file.add_command(label='-----Tabs-----', command=None) item_tab.add_command(label='New Tab', command=lambda: self.toolbox.create_canvas(clipboard=True)) item_tab.add_command(label='Rearrange', command=lambda: self.toolbox.save_as_canvas(rearrange=True)) item_tab.add_command(label='Open', command=lambda: self.toolbox.load_canvas(clipboard=True)) item_tab.add_command(label='Save', command=self.toolbox.save_canvas) item_tab.add_command(label='Save As', command=self.toolbox.save_as_canvas) item_tab.add_command(label='Rename', command=self.toolbox.change_tab_label) item_tab.add_command(label='Duplicate', command=lambda: self.toolbox.load_canvas(duplicate=True)) item_tab.add_command(label='Close', command=lambda e: self.toolbox.delete_canvas(event=e, clipboard=True)) item_file.add_separator() item_file.add_command(label='Save State', command=self.save_state) item_file.add_command(label='Exit', command=self.destroy_window) item_import = Menu(self.menu, tearoff=0) item_import.add_command(label='Import Model', command=self.toolbox.import_model) item_import.add_command(label='Import Text', command=self.notebook.clicked_open) item_defaults = Menu(self.menu, tearoff=0) item_defaults.add_command(label='Open Config', command=self.toolbox.open_config) item_defaults.add_command(label='Save Node Choices', command=self.toolbox.save_defaults) item_defaults.add_command(label='Restore Defaults', command=lambda: self.toolbox.load_default_nodes(revert=True)) item_defaults.add_command(label='Keybind List', command=self.keybind_popup) item_run = Menu(self.menu, tearoff=0) item_run.add_command(label='Compile', command=self.toolbox.compile_objects) # setting kernel here kernelOptions = ["LuaTorch","PyTorch","ONNX"] self.kernelVar = StringVar(self.menu) self.state.kernel = kernelOptions[0] self.kernelVar.set(self.state.kernel) # default value item_kernel = Menu(self.menu, tearoff=0) for item in kernelOptions: item_kernel.add_radiobutton(label=item, value=item, variable=self.kernelVar, command=self.select_kernel) self.menu.add_cascade(label='File', menu=item_file) self.menu.add_cascade(label='Import', menu=item_import) self.menu.add_cascade(label='Config', menu=item_defaults) self.menu.add_cascade(label='Run', menu=item_run) self.menu.add_cascade(label='Kernel', menu=item_kernel) # icons icon_repo = os.path.join(os.getcwd(), 'images') self.menu.iconimages = [] # keeps in memory icon_path = os.path.join(icon_repo, 'new.png') # placeholders img = Image.open(icon_path) img = ImageTk.PhotoImage(img) self.menu.add_command(image=img, compound='left', command=lambda: self.toolbox.create_canvas(clipboard=True)) self.menu.iconimages.append(img) icon_path = os.path.join(icon_repo, 'open.png') img = Image.open(icon_path) img = ImageTk.PhotoImage(img) self.menu.add_command(image=img, compound='left', command=lambda: self.toolbox.load_canvas(clipboard=True)) self.menu.iconimages.append(img) icon_path = os.path.join(icon_repo, 'save.png') img = Image.open(icon_path) img = ImageTk.PhotoImage(img) self.menu.add_command(image=img, compound='left', command=self.toolbox.save_canvas) self.menu.iconimages.append(img) self.window.config(menu = self.menu) # allows drag and drop to work self.window.bind("<FocusIn>", lambda e: self.handle_focusin(e)) self.window.bind("<FocusOut>", lambda e: self.handle_focusout(e)) def handle_focusin(self, event): self.window.config(menu = self.menu) def handle_focusout(self, event): try: if self.window.focus_get() == None: self.window.config(menu = "") except: pass def keybind_popup(self): if self.toolbox.command_lock != None: return keybind_root = Toplevel(self.window) keybind_root.title('Keybinds') keybind_root.resizable(False, False) keybind_root.columnconfigure(0, weight=1) keybind_root.columnconfigure(1, weight=1) Label(keybind_root, text='Window', font='Arial 12 bold').grid(row=0, column=0, columnspan=2) Label(keybind_root, text='Undo State:', anchor='w').grid(row=1, column=0, sticky=W) Label(keybind_root, text='Ctrl + Z', anchor='e').grid(row=1, column=1, sticky=E) Label(keybind_root, text='Redo State:', anchor='w').grid(row=2, column=0, sticky=W) Label(keybind_root, text='Ctrl + Shift + Z', anchor='e').grid(row=2, column=1, sticky=E) Label(keybind_root, text='Close selected tab:', anchor='w').grid(row=3, column=0, sticky=W) Label(keybind_root, text='Ctrl + W', anchor='e').grid(row=3, column=1, sticky=E) Label(keybind_root, text='Close:', anchor='w').grid(row=4, column=0, sticky=W) Label(keybind_root, text='Esc', anchor='e').grid(row=4, column=1, sticky=E) Label(keybind_root, text='').grid(row=5, column=0, columnspan=2) Label(keybind_root, text='Canvas', font='Arial 12 bold').grid(row=6, column=0, columnspan=2) Label(keybind_root, text='Set selected ACTIVE:', anchor='w').grid(row=7, column=0, sticky=W) Label(keybind_root, text='Ctrl + Insert', anchor='e').grid(row=7, column=1, sticky=E) Label(keybind_root, text='Set selected INACTIVE:', anchor='w').grid(row=8, column=0, sticky=W) Label(keybind_root, text='Ctrl + Home', anchor='e').grid(row=8, column=1, sticky=E) Label(keybind_root, text='DELETE selected:', anchor='w').grid(row=9, column=0, sticky=W) Label(keybind_root, text='Ctrl + Delete', anchor='e').grid(row=9, column=1, sticky=E) Label(keybind_root, text='GROUP selected:', anchor='w').grid(row=10, column=0, sticky=W) Label(keybind_root, text='Ctrl + G', anchor='e').grid(row=10, column=1, sticky=E) Label(keybind_root, text='').grid(row=11, column=0, columnspan=2) Label(keybind_root, text='Canvas Nodes', font='Arial 12 bold').grid(row=12, column=0, columnspan=2) Label(keybind_root, text='Select Node:', anchor='w').grid(row=13, column=0, sticky=W) Label(keybind_root, text='Left Click', anchor='e').grid(row=13, column=1, sticky=E) Label(keybind_root, text='Multi-select:', anchor='w').grid(row=14, column=0, sticky=W) Label(keybind_root, text='Left Click + Drag Canvas', anchor='e').grid(row=14, column=1, sticky=E) Label(keybind_root, text='Drag Node:', anchor='w').grid(row=15, column=0, sticky=W) Label(keybind_root, text='Left Click Node Center + Drag', anchor='e').grid(row=15, column=1, sticky=E) Label(keybind_root, text='Link Nodes:', anchor='w').grid(row=16, column=0, sticky=W) Label(keybind_root, text='Left Click Node Edge + Drag to Node', anchor='e').grid(row=16, column=1, sticky=E) Label(keybind_root, text='Set active/inactive:', anchor='w').grid(row=17, column=0, sticky=W) Label(keybind_root, text='Middle Click', anchor='e').grid(row=17, column=1, sticky=E) Label(keybind_root, text='Delete Node/Link:', anchor='w').grid(row=18, column=0, sticky=W) Label(keybind_root, text='Double Middle Click', anchor='e').grid(row=18, column=1, sticky=E) Label(keybind_root, text='Edit Node Value:', anchor='w').grid(row=19, column=0, sticky=W) Label(keybind_root, text='Right Click', anchor='e').grid(row=19, column=1, sticky=E) Label(keybind_root, text='Edit Node/Link Name:', anchor='w').grid(row=20, column=0, sticky=W) Label(keybind_root, text='Double Right Click', anchor='e').grid(row=20, column=1, sticky=E) Label(keybind_root, text='').grid(row=21, column=0, columnspan=2) Label(keybind_root, text='Choice Nodes', font='Arial 12 bold').grid(row=22, column=0, columnspan=2) Label(keybind_root, text='Edit Choice:', anchor='w').grid(row=23, column=0, sticky=W) Label(keybind_root, text='Double Left Click', anchor='e').grid(row=23, column=1, sticky=E) Label(keybind_root, text='Delete Choice: Double Middle Click', anchor='w').grid(row=24, column=0, sticky=W) Label(keybind_root, text='Double Middle Click', anchor='e').grid(row=24, column=1, sticky=E) Label(keybind_root, text='Edit Choice Name:', anchor='w').grid(row=25, column=0, sticky=W) Label(keybind_root, text='Right Click', anchor='e').grid(row=25, column=1, sticky=E) keybind_root.transient(self.window) keybind_root.wait_visibility() keybind_root.grab_set() self.window.config(menu = self.menu) def init_panedWindows(self): self.panedwin = PanedWindow(self.window, orient=VERTICAL) self.panedwin.grid(row=0, column=0, sticky=NSEW) # allows pane stretch topwin = PanedWindow(self.panedwin) # toolbox and notebook self.topleft = PanedWindow(topwin) topwin.add(self.topleft, stretch='always') self.topright = PanedWindow(topwin) topwin.add(self.topright, stretch='always') self.panedwin.add(topwin, stretch='always') bottomwin = PanedWindow(self.panedwin) # edits and directorytree self.bottomleft = PanedWindow(bottomwin) bottomwin.add(self.bottomleft, stretch='always') self.bottommiddle = PanedWindow(bottomwin) bottomwin.add(self.bottommiddle, stretch='always') self.bottomright = PanedWindow(bottomwin) bottomwin.add(self.bottomright, stretch='always') self.panedwin.add(bottomwin, stretch='always') self.window.update_idletasks() # adds PanedWindow, allows gemoetry before root initialization self.panedwin.sash_place(0, 0, self.window.winfo_height()//5*3) # (index, x, y (vert y=0, horiz x=0)) topwin.sash_place(0, self.window.winfo_width()//5*4, 0) bottomwin.sash_place(0, self.window.winfo_width()//10*5, 0) bottomwin.sash_place(1, self.window.winfo_width()//5*4, 0) def init_notebook(self): self.notebooksync = NotebookSync() self.notebook = Notebook(self.topright, self.notebooksync, self.state, self.clipboard) def init_nodeTb(self): self.nodeTb = DefaultNodeTextbox(self.bottommiddle, self.state) def init_toolbox(self): self.toolbox = Toolbox(self.window, self.topleft, self.bottomleft, self.state, self.nodeTb, self.notebook, self.notebooksync, self.clipboard, self) def init_directoryTree(self): self.dTree = DirectoryTree(self.bottomright, self.nodeTb, self.notebook, self.toolbox) def select_kernel(self): log("kernel:" + self.state.kernel + ' --> ' + self.kernelVar.get()) self.state.kernel = self.kernelVar.get() def save_state(self): self.toolbox.update_state() self.notebook.update_state() self.state.save() def undo_state(self, event=None): if self.toolbox.command_lock != None: return self.clipboard.undo() state = dict(self.clipboard.get()) self.state.dom = dict(state) self.toolbox.load_state(unredo=True, state_dom=state) self.notebook.load_state(unredo=True, state_dom=state) print('Undo') def redo_state(self, event=None): if self.toolbox.command_lock != None: return if self.clipboard.current == 0: return self.clipboard.redo() state = dict(self.clipboard.get()) self.state.dom = dict(state) self.toolbox.load_state(unredo=True, state_dom=state) self.notebook.load_state(unredo=True, state_dom=state) print('Redo') def destroy_window(self, event=None): if messagebox.askokcancel("Quit", "Do you want to quit?"): self.save_state() self.window.destroy() # # Save current state and then close the window # if messagebox.askyesno("Save", "Do you want to save current state?"): # self.save_state() # log('Window closed') # self.window.destroy() def open_edit_menu(self, event): # right click popup menu_popup = Menu(self.window, tearoff=0) menu_popup.add_command(label=' Cut ', command=lambda: event.widget.event_generate('<<Cut>>')) menu_popup.add_command(label=' Copy ', command=lambda: event.widget.event_generate('<<Copy>>')) menu_popup.add_command(label=' Paste ', command=lambda: event.widget.event_generate('<<Paste>>')) menu_popup.tk.call('tk_popup', menu_popup, event.x_root, event.y_root)
from Computador import * from Desktop import * from Notebook import * tela = Desktop('Hp', 'Branco', 1.500, 100) print("----- Desktop -----") print(tela.getInformacoes()) tela.modelo = 'AOC' tela.cor = "Preto" tela.preco = 1.000 print('Dados atualizados: ') print(tela.getInformacoes()) tela.cadastrar() print('\n----- Notebook -----') note = Notebook('G3', 'Prata', 5.600, 500) print(note.getInformacoes()) note.modelo = 'Acer' note.cor = 'Prata' note.preco = 2.000 print('Dados atualizados: ') print(note.getInformacoes()) note.cadastrar()
from .oo-notebook-teste import Notebook print("Inicio do Programa") a = 10 b = 20 note1 = Notebook() note1.cor = "amarela" note2 = Notebook() print("Cor do Note 1: ", note1.cor) print("Cor do Note 2: ", note2.cor) note2.ligar() print("Fim do Programa")
class Browser(QMainWindow): def __init__(self): # UI super().__init__() self.browser = QTabWidget() self.add_new_tab() self.setCentralWidget(self.browser) self.menu_bar() self.navigation_tool_bar() self.url.setText('https://google.com/') self.browser.setTabsClosable(True) self.browser.setTabBarAutoHide(True) self.browser.tabCloseRequested.connect(self.close_current_tab) self.setWindowIcon(QIcon('donut.png')) self.setWindowTitle("Clerk's browser") def navigation_tool_bar(self): # Creating navigation tool bar with functions navigation_tb = QToolBar("Навигация") navigation_tb.setIconSize(QSize(25, 20)) self.addToolBar(navigation_tb) back_btn = QActionMod(QIcon('left-arrow.png'), 'Назад', 'Перейти на предыдущую страницу', self) back_btn.triggered.connect(self.browser.currentWidget().back) frwd_btn = QActionMod(QIcon('right-arrow.png'), "Вперед", "Перейти на следующую страницу", self) frwd_btn.triggered.connect(self.browser.currentWidget().forward) reload_btn = QActionMod(QIcon('reload_arrow.png'), "Перезагрузить", "Перезагрузить страницу", self) reload_btn.triggered.connect(self.browser.currentWidget().reload) home_btn = QActionMod(QIcon('house.png'), "Стартовая страница", "Вернуться на стартовую страницу", self) home_btn.triggered.connect(self.navigate_home) self.url = QLineEdit() self.url.editingFinished.connect(self.navigate_to_url) stop_btn = QActionMod(QIcon('close.png'), "Остановка", "Остановка загрузки страницы", self) stop_btn.triggered.connect(self.browser.currentWidget().stop) new_tab_action = QActionMod(QIcon('new_tab.png'), "Новая вкладка", "Открыть новую вкладку", self) new_tab_action.triggered.connect(lambda _: self.add_new_tab()) [navigation_tb.addAction(i) for i in [back_btn, frwd_btn, reload_btn, home_btn]] navigation_tb.addSeparator() navigation_tb.addAction(new_tab_action) navigation_tb.addSeparator() navigation_tb.addWidget(self.url) navigation_tb.addAction(stop_btn) def menu_bar(self): # Creating menu bar with additional apps menu = self.menuBar().addMenu("&Apps") files = self.menuBar().addMenu("&Files") calc = QActionMod(QIcon('calc.png'), 'Калькулятор', 'Открыть калькулятор', self) calc.triggered.connect(self.calculator) menu.addAction(calc) note = QActionMod(QIcon('notebook.png'), 'Заметки', 'Открыть заметки', self) note.triggered.connect(self.notebook) menu.addAction(note) hstry = QActionMod(QIcon('history.png'), 'История', 'История посещения веб-сайтов', self) hstry.triggered.connect(self.history) menu.addAction(hstry) ttt = QActionMod(QIcon('tic-tac-toe.png'), 'Крестики-Нолики', 'Запустить игру крестики-нолики', self) ttt.triggered.connect(self.tic_tac_toe) menu.addAction(ttt) def add_new_tab(self): # Create new tab new_tab = QWebEngineView() new_tab.setUrl(QUrl('https://google.com/')) i = self.browser.addTab(new_tab, new_tab.page().title()) self.browser.setCurrentIndex(i) new_tab.loadFinished.connect(lambda _: self.browser.setTabText(i, new_tab.page().title())) new_tab.urlChanged.connect(lambda _: self.url.setText(new_tab.page().url().toString())) new_tab.urlChanged.connect( lambda _: self.add_to_history(new_tab.page().title(), new_tab.page().url().toString())) def close_current_tab(self, i): # Close tab under cursor if self.browser.count() < 2: return else: self.browser.removeTab(i) def navigate_home(self): # Open home page in current tab self.browser.currentWidget().setUrl(QUrl('https://google.com/')) self.url.setText('https://google.com/') def navigate_to_url(self): # Open user's url q = QUrl(self.url.text()) if q.scheme() == '': q.setScheme('http') self.browser.currentWidget().setUrl(q) def calculator(self): # Open calculator self.calc = Calculator() self.calc.show() def notebook(self): # Open notebook self.notes = Notebook() self.notes.show() def add_to_history(self, name, url): # Extending user's history time = datetime.datetime.now() con = sqlite3.connect('history.sqlite') cur = con.cursor() cur.execute(f""" INSERT INTO history(Name, url, Time) VALUES('{name}', '{url}', '{time}') """) con.commit() con.close() def history(self): # Open history app self.hstry = History() self.hstry.show() def tic_tac_toe(self): # Open tic-tac-toe self.ttt = TicTacToe() self.ttt.show()
def notebook(self): # Open notebook self.notes = Notebook() self.notes.show()