예제 #1
0
    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)
예제 #2
0
 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
예제 #3
0
    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"))
예제 #4
0
 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')
예제 #5
0
    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()
예제 #6
0
    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)
예제 #7
0
    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 = []
예제 #8
0
# 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):
예제 #9
0
 def createNotebook(self):
     self.nb = Notebook.My_Notebook(self.pnl, -1)
     # Select initial items
     self.nb.SetSelection(0)
예제 #10
0
파일: Sketch.py 프로젝트: jatinsha/sketch
 def init_notebook(self):
     self.notebooksync = NotebookSync()
     self.notebook = Notebook(self.topright, self.notebooksync, self.state, self.clipboard)
예제 #11
0
파일: Sketch.py 프로젝트: jatinsha/sketch
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)
예제 #12
0
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()
예제 #13
0
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")
예제 #14
0
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()
예제 #15
0
 def notebook(self):
     # Open notebook
     self.notes = Notebook()
     self.notes.show()