def parse(self, model, root_node, fields): attrs = common.node_attributes(root_node) self.title = attrs.get('string', 'Unknown') vbox = gtk.VBox() if not Calendar_: return vbox, {}, [], '', [], None goocalendar = Calendar_(attrs=attrs, model=model, root_node=root_node, fields=fields, screen=self.screen) toolbar = Toolbar(goocalendar) goocalendar.connect('view-changed', self.on_view_changed, toolbar) goocalendar.connect('page-changed', self.on_page_changed, toolbar) goocalendar.connect('event-pressed', self.on_event_pressed) goocalendar.connect('event-activated', self.on_event_activated) goocalendar.connect('event-released', self.on_event_released, attrs) goocalendar.connect('day-pressed', self.on_day_pressed) goocalendar.connect('day-activated', self.on_day_activated) scrolledWindow = gtk.ScrolledWindow() scrolledWindow.add_with_viewport(goocalendar) vbox.pack_start(toolbar, False, False) vbox.pack_start(scrolledWindow, True, True) return vbox, { 'root': scrolledWindow, 'toolbar': toolbar, 'goocalendar': goocalendar }, [], '', [], None
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): self.root = self._create_root_app() self.curdir = os.getcwd() self.curfile = f'{os.path.dirname(self.curdir)}\\images\\asciify.jpg' self.curimg = None self.ascii_image = "" self.gradientEntry = tk.StringVar() self.use_custom_gradient = tk.BooleanVar(value=False) self.gradientStep = tk.StringVar(value=str(settings.gradient["step"])) self.fontsize = tk.StringVar(value=str(settings.font["size"])) self.curfont = tk.StringVar(value=settings.font["family"]) self.percent = tk.StringVar(value=float(settings.output["percent"])) self.outputSize = tk.StringVar(value="0x0") self.targetWidth = tk.IntVar(value=int(settings.output["width"])) self.targetHeight = tk.IntVar(value=int(settings.output["height"])) self.curoutputoption = tk.StringVar(value=settings.output["type"]) self.contrast = tk.StringVar(value=settings.adjustments["contrast"]) self.brightness = tk.StringVar( value=settings.adjustments["brightness"]) self.aspectRatioFit = (16, 9) # application elements self.menubar = MenuBar(self) self.toolbar_widget = Toolbar(self) self.ascii_wdiget = self.create_ascii_zone() self.update_current_working_img() self.update_ascii()
def __init__(self, capacity: int, def_pos: tuple, def_cells_per_row: int, color: pygame.Color, cell_color: pygame.Color): # The inventory's contents (a list of items) self.contents = [None] * capacity # Maximum number of items the inventory can hold self.capacity = capacity # Default position of the UI in pixels self.def_pos = def_pos # Default width of the inventory in item cells self.def_cells_per_row = def_cells_per_row # Colours of inventory rect and small grid rects respectively self.color = color self.cell_color = cell_color # Apply defaults (defaults are used if these params are not specified by in the open() function self.pos = def_pos self.cells_per_row = def_cells_per_row self.rect = pygame.Rect(self.pos, self.get_size()) #self.search_bar = SearchBar(new_bar_pos = (def_pos[0], def_pos[1]-30)) self.tool_bar = Toolbar(self.rect.width, self.rect.topleft, pygame.Color(100, 100, 100), color) # Inventory menu is initialized to a "closed" state self.is_open = False
def test_next_image(self): tool = AnnotationTool() tool.load_app(True) # Annotation added tool.annotations = [] tool.file_list = [] tool.class_list = ['winston', 'prince', 'duckie'] tool.colorspace = ['#0000FF', '#FF0000', '#00FF00'] tool.current_file = 0 tool.num_pages = 1 for i in range(5): a = Annotation() a.rotation = 3 tool.file_list.append('file%d.jpg' % i) for p in range(3): roi = ROI() roi.push(0,0) roi.push(100.0,100.0) a.push(roi, i%len(tool.class_list)) tool.annotations.append(a) toolbar = Toolbar(tool) self.assertEqual(tool.current_file, 0) truth = [1, 2, 3, 4, 4] for i in range(5): toolbar._next_image() self.assertEqual(tool.current_file, truth[i])
def test_draw_image_navigator(self): tool = AnnotationTool() tool.load_app(True) # Annotation added tool.annotations = [] tool.file_list = [] tool.class_list = ['winston', 'prince', 'duckie'] tool.colorspace = ['#0000FF', '#FF0000', '#00FF00'] tool.current_file = 0 tool.num_pages = 1 for i in range(5): a = Annotation() a.rotation = 3 tool.file_list.append('file%d.jpg' % i) for p in range(3): roi = ROI() roi.push(0,0) roi.push(100.0,100.0) a.push(roi, i%len(tool.class_list)) tool.annotations.append(a) toolbar = Toolbar(tool) nav_frame = toolbar.toolbar_frame.winfo_children()[0] nav_frame_children = nav_frame.winfo_children() self.assertEqual(len(nav_frame_children), 3) self.assertEqual(nav_frame_children[0].cget('text'), "Page 1/2")
def test_draw_class_selection_menu(self): tool = AnnotationTool() tool.load_app(True) # Annotation added tool.annotations = [] tool.file_list = [] tool.class_list = ['winston', 'prince', 'duckie'] tool.colorspace = ['#0000FF', '#FF0000', '#00FF00'] tool.current_file = 0 tool.num_pages = 1 tool.class_count = [5, 5, 5] for i in range(5): a = Annotation() a.rotation = 3 tool.file_list.append('file%d.jpg' % i) for p in range(3): roi = ROI() roi.push(0,0) roi.push(100.0,100.0) a.push(roi, p%len(tool.class_list)) tool.annotations.append(a) toolbar = Toolbar(tool) option_menu = toolbar.toolbar_frame.winfo_children()[2] self.assertEqual(option_menu.winfo_name(), '!optionmenu')
def test_delete_from_project(self): tool = AnnotationTool() tool.load_app(True) # Annotation added tool.annotations = [] tool.file_list = [] tool.class_list = ['winston', 'prince', 'duckie'] tool.colorspace = ['#0000FF', '#FF0000', '#00FF00'] tool.current_file = 0 tool.num_pages = 1 tool.class_count = [5, 5, 5] for i in range(5): a = Annotation() a.rotation = 3 tool.file_list.append('file%d.jpg' % i) for p in range(3): roi = ROI() roi.push(0,0) roi.push(100.0,100.0) a.push(roi, p%len(tool.class_list)) tool.annotations.append(a) toolbar = Toolbar(tool) self.assertEqual(len(tool.annotations) , 5) self.assertEqual(len(tool.file_list) , 5) self.assertListEqual(tool.class_count, [5,5,5]) toolbar._delete_from_project() self.assertEqual(len(tool.annotations) , 4) self.assertEqual(len(tool.file_list) , 4) self.assertListEqual(tool.class_count, [4,4,4])
def test_delete_from_project_button(self): tool = AnnotationTool() tool.load_app(True) # Annotation added tool.annotations = [] tool.file_list = [] tool.class_list = ['winston', 'prince', 'duckie'] tool.colorspace = ['#0000FF', '#FF0000', '#00FF00'] tool.current_file = 0 tool.num_pages = 1 for i in range(5): a = Annotation() a.rotation = 3 tool.file_list.append('file%d.jpg' % i) for p in range(3): roi = ROI() roi.push(0,0) roi.push(100.0,100.0) a.push(roi, i%len(tool.class_list)) tool.annotations.append(a) toolbar = Toolbar(tool) button = toolbar.toolbar_frame.winfo_children()[1] self.assertEqual(button.cget('text'), '') self.assertEqual(button.cget('width'), 40) self.assertEqual(button.cget('height'), 40)
def __init__(self, arg): # setting self.name_map = arg.name_map self.opt = Setting() # pygame pygame.init() self.screen = pygame.display.set_mode(self.opt.WINDOW_SIZE) pygame.display.set_caption(self.opt.TITLE % self.name_map) self.clock = pygame.time.Clock() self.set_grill_surface() # data self.path = os.path.dirname(__file__) self.path_img = os.path.join(self.path, "..", "src", "img") file = self.name_map + self.opt.LUA_FORMAT self.path_maps = os.path.join(self.path, "..", "src", "maps", file) self.create = not os.path.exists(self.path_maps) # objects self.builder = Builder(self) self.converter = Converter(self) self.images = Images(self) self.map = Map(self) self.selector = Selector(self) self.toolbar = Toolbar(self) # loop self.saved = True self.loop() pygame.quit()
def _draw_workspace(self): ''' This draws the main project in the background frame Parameters ---------- None Attributes ---------- background : tkinter Frame object This is the frame that covers the entire window object Raises ------ None Returns ------- complete : bool Returns True for unittesting ''' self.app_menu._draw_menu() self.background.destroy() # Build Background Frame self.background = Frame(self.window, bg="gray", width=self.window_width, height=self.window_height) self.background.place(x=0, y=0, width = self.window_width, height = self.window_height) if self.annotations: self.num_pages = int(len(self.annotations)/self.img_per_page) # Draw Toolbar on Left toolbar = Toolbar(self) # Draw Canvas on Right self.draw_canvas() if len(self.annotations): self.navigator = Navigator(self) return True
def __init__(self): self._running = True self._display_surf = None self._image_surf = None self._apple_surf = None self.game = Game() self.player = Player(3, self.windowDimX, self.windowDimY) self.windowWidth = self.windowDimX * self.player.step self.windowHeight = self.windowDimY * self.player.step self.toolbar = Toolbar(self.toolbarWidth, self.windowWidth, self.windowHeight) self.apple = Apple(randint(0, self.windowDimX - 1), randint(0, self.windowDimY - 1))
def __init__(self, options): self.options = options self.main_window = MainWindow(self) self.session_manager = debugsession.SessionManager(self) self.console = Console(self) self.main_window.console = self.console self.stack = StackViewer(self) self.namespace = AllNamespaceViewer(self) self.threads = ThreadsViewer(self) self.source = SourceViewer(self) self.status = StatusBar(self) self.breaks = BreakpointViewer(self) self.toolbar = Toolbar(self) debugsession.connect_events(self)
def test_init(self): tool = AnnotationTool() tool.load_app(True) # Annotation added tool.annotations = [] tool.file_list = [] tool.class_list = ['winston', 'prince', 'duckie'] tool.colorspace = ['#0000FF', '#FF0000', '#00FF00'] tool.current_file = 0 tool.num_pages = 1 toolbar = Toolbar(tool) self.assertEqual(toolbar.root_app, tool) self.assertEqual(toolbar.toolbar_width, tool.window_width) self.assertEqual(toolbar.toolbar_height, tool.toolbar_height) self.assertEqual(len(toolbar.toolbar_frame.winfo_children()), 0) for i in range(5): a = Annotation() a.rotation = 3 tool.file_list.append('file%d.jpg' % i) for p in range(3): roi = ROI() roi.push(0,0) roi.push(100.0,100.0) a.push(roi, i%len(tool.class_list)) tool.annotations.append(a) toolbar = Toolbar(tool) self.assertEqual(toolbar.root_app, tool) self.assertEqual(toolbar.toolbar_width, tool.window_width) self.assertEqual(toolbar.toolbar_height, tool.toolbar_height) self.assertEqual(len(toolbar.toolbar_frame.winfo_children()), 3)
def __init__(self,dq,state,freq): self._running = True self._display_surf = None self._image_surf = None self._apple_surf = None self.game = Game() self.player = Player(3,self.windowDimX, self.windowDimY) self.windowWidth = self.windowDimX*self.player.step self.windowHeight = self.windowDimY*self.player.step self.toolbar = Toolbar(self.toolbarWidth, self.windowWidth, self.windowHeight) self.apple = Apple(randint(0,self.windowDimX-1), randint(0,self.windowDimY-1)) self.dataCollect = DataCollector() self.displayq=dq self.state_size = state self.frequency = freq
def __init__(self): super().__init__() self.title = 'ADF Explorer' self.width = 640 self.height = 512 self.adf = ADF(self) self.actions = Actions(self) self.toolbar = Toolbar(self) self.menu = Menu(self) self.path = Path(self) self.browser = Browser(self) self.status = Status(self) self.initUI()
def __init__(self, config=default): """Create an instance of a PyRysunek application. Optional arguments: config -- dictionary containing configuration values (see `config.default`) """ self.config = config self.width, self.height = self.config.window_size self.toolbar = Toolbar(self.config.toolbar) self.context = Context( objects=ObjectList(), color_picker=self.toolbar.color_picker, ) self._init_opengl() if config.auto_load_on_start: self.load()
def __init__(self, arg): pygame.init() self.opt = Setting() self.name_map = arg.name_map self.screen = pygame.display.set_mode((self.opt.WIDTH + self.opt.TILE_SIZE*15,self.opt.HEIGHT + self.opt.TILE_SIZE*3)) self.set_grill_surface() pygame.display.set_caption(self.opt.TITLE) self.path = os.path.dirname(__file__) self.path_img = os.path.join(self.path, ".." , "src", "img") self.images = Spritesheet(self) self.path_maps = os.path.join(self.path, ".." , "src", "maps", self.name_map + self.opt.LUA_FORMAT) self.create = not os.path.exists(self.path_maps) self.builder = Builder(self) self.clock = pygame.time.Clock() self.converter = Converter(self) self.map = Map(self) self.selector = Selector(self) self.toolbar = Toolbar(self) self.loop() pygame.quit()
def initUI(self): """Initialize GUi's elements""" main_layout = QVBoxLayout() self.setStyleSheet('background-color: rgb(51,51,51); color: white') self.setLayout(main_layout) # define view's widgets central_layout = QHBoxLayout() toolbar = Toolbar(self.configuration, self.controller, self.parent) self.matrix = LayoutMatrix(self.layout_configuration, self.configuration, self) central_layout.addWidget(toolbar) central_layout.addWidget(self.matrix) # main_layout.addWidget(logo) main_layout.addLayout(central_layout) self.show_information_popup()
def __init__(self, width=640, height=400, fps=30): """Initialize pygame, window, background, font,... """ pygame.init() pygame.display.set_caption("Press ESC to quit") self.pygame = pygame self.width = width self.height = height #self.height = width // 4 self.display = pygame.display self.screen = pygame.display.set_mode((self.width, self.height), pygame.DOUBLEBUF) self.background = pygame.Surface(self.screen.get_size()).convert() self.clock = pygame.time.Clock() self.fps = fps self.playtime = 0.0 self.font = PygFont(pygame) self.sudoku = Sudoku() self.helper = False self.x_loc = 30 self.y_loc = 30 self.x_size = 450 self.y_size = 450 self.x_inc = self.x_size / 9 #number of columns self.y_inc = self.y_size / 9 #number of rows self.grid_x = -1 self.grid_y = -1 self.stats_x_loc = self.x_loc + self.x_size + 30 self.stats_y_loc = self.y_loc self.stats_x_size = 50 self.stats_y_size = 450 self.toolbar_x_loc = 20 self.toolbar_y_loc = self.y_loc + self.y_size + 70 self.toolbar_x_size = 600 self.toolbar_y_size = 80 self.toolbar = Toolbar(self.toolbar_x_size, self.toolbar_y_size, self.toolbar_x_loc, self.toolbar_y_loc)
def __init__(self): '''Init Main screenshot.''' # Init. self.action = ACTION_WINDOW # current action status # the windows in this workspace coordinate info self.screenshot_window_info = get_screenshot_window_info() #print "window info:", self.screenshot_window_info self.monitor_x, self.monitor_y, self.width, self.height = get_current_monitor_info() #self.width = SCREEN_WIDTH # this monitor width #self.height = SCREEN_HEIGHT # this monitor height #self.monitor_x = SCREEN_X # this monitor source point's x coordinate #self.monitor_y = SCREEN_Y # this monitor source point's y coordinate # the screenshot area's x, y, width, height self.x = self.y = self.rect_width = self.rect_height = 0 self.save_op_index = SAVE_OP_AUTO # current operation when the save button clicked #self.buttonToggle = None self.drag_position = None self.last_drag_position = None self.dragStartX = self.dragStartY = self.dragStartOffsetX = self.dragStartOffsetY = 0 self.textDragOffsetX = self.textDragOffsetY = 0 self.drag_flag = False # a flag if the selected area can be dragged self.show_toolbar_flag = False # a flag if the toolbar has shown self.show_colorbar_flag = False # a flag if the colorbar has shown self.show_text_window_flag = False # a flag if the text_window has shown self.text_drag_flag = False # a flag if the text_window can be dragged self.text_modify_flag = False # a flag if the text has been modified self.draw_text_layout_flag = False # a flag if the text layout will be drawn self.share_to_flag = False # a flag if the screenshot will be shared self.window_flag = True # a flag if has not selected area or window self.is_subprocess = config.OPTION_SUB self.saveFiletype = 'png' self.saveFilename = config.OPTION_FILE # make sure the toolbar in this monitor self.toolbarOffsetX = self.monitor_x + 10 self.toolbarOffsetY = self.monitor_y + 10 #self.toolbarOffsetX = 10 #self.toolbarOffsetY = 10 #self.toolbar_height = 50 self.action_size = ACTION_SIZE_SMALL # the draw action's line width self.action_color = "#FF0000" # the draw action's color self.font_name = "Sans" # the fontname of text to draw self.font_size = 12 # the fontsize of text to draw # Init action list. self.current_action = None # current drawing action self.action_list = [] # a list of actions have created self.current_text_action = None # current drawing text action self.text_action_list = [] # a list of text actions have created self.text_action_info = {} # the created text actions' info # Get desktop background. # a gtk.gdk.Pixbuf of the desktop_background self.desktop_background = self.get_desktop_snapshot() # a string containing the pixel data of the pixbuf self.desktop_background_pixels= self.desktop_background.get_pixels() # the number of the pixbuf channels. self.desktop_background_n_channels = self.desktop_background.get_n_channels() # the number of bytes between rows. self.desktop_background_rowstride = self.desktop_background.get_rowstride() # Init window. self.window = RootWindow(self) # Init toolbar window. self.toolbar = Toolbar(self.window.window, self) # Init color window. self.colorbar = Colorbar(self.window.window, self) # right button press menu self.right_menu = RightMenu(self) # Show. self.window.show() self.window.set_cursor(ACTION_WINDOW) dss.hide()
def __init__(self): gtk.Window.__init__(self) set_props(self, title='OCFS2 Console', default_width=600, default_height=460, border_width=0) self.connect('delete_event', self.cleanup) notebook = gtk.Notebook() notebook.set_tab_pos(gtk.POS_TOP) info_frames = [] for desc, info in info_items: frame = gtk.Frame() set_props(frame, shadow=gtk.SHADOW_NONE, border_width=0) notebook.add_with_properties(frame, 'tab_label', desc) info_frames.append((frame, info)) self.pv = PartitionView(info_frames) self.pv.set_size_request(-1, 100) vbox = gtk.VBox() self.add(vbox) menu = Menu(self) menubar, sel_items, unmounted_items = menu.get_widgets() vbox.pack_start(menubar, expand=False, fill=False) self.pv.add_sel_widgets(sel_items) self.pv.add_unmount_widgets(unmounted_items) toolbar = Toolbar(self) tb, buttons, filter_entry = toolbar.get_widgets() vbox.pack_start(tb, expand=False, fill=False) self.pv.add_mount_widgets([buttons['unmount']]) self.pv.add_unmount_widgets([buttons['mount']]) filter_entry.connect('activate', self.refresh) self.pv.set_filter_entry(filter_entry) vpaned = gtk.VPaned() vpaned.set_border_width(4) vbox.pack_start(vpaned, expand=True, fill=True) scrl_win = gtk.ScrolledWindow() set_props(scrl_win, hscrollbar_policy=gtk.POLICY_AUTOMATIC, vscrollbar_policy=gtk.POLICY_AUTOMATIC) scrl_win.add(self.pv) vpaned.pack1(scrl_win) vpaned.pack2(notebook) self.pv.grab_focus() self.show_all() self.refresh()
def __init__(self): gtk.Window.__init__(self) self.set_size_request(640, 480) self.set_default_size(1366, 768) #self.set_default_size(800, 600) self.winstate = 0 self.maximize() self.connect("delete-event", self.quit) self.bindings = gtk.AccelGroup() self.add_accel_group(self.bindings) self.setup = gtk.PageSetup() self.settings = gtk.PrintSettings() self.filename = None self.update_title() icon = gtk.gdk.pixbuf_new_from_file( os.path.join(os.path.dirname(__file__), "..", "images", "canvas-logo.png")) self.set_icon(icon) vbox = gtk.VBox() self.add(vbox) self.menu = MenuBar(self) vbox.pack_start(self.menu, False, False) self.menu.append_menu("_" + _("File")) self.menu.append_item(gtk.STOCK_NEW, "new", "<Control>N") self.menu.append_item(gtk.STOCK_OPEN, "open", "<Control>O") self.menu.append_item(gtk.STOCK_SAVE, "save", "<Control>S") self.menu.append_item(gtk.STOCK_SAVE_AS, "save-as", "<Control><Shift>S") self.menu.append_separator() self.menu.append_item(gtk.STOCK_PAGE_SETUP, "page-setup") self.menu.append_item(gtk.STOCK_PRINT_PREVIEW, "print-preview", "<Control><Shift>P") self.menu.append_item(gtk.STOCK_PRINT, "print", "<Control>P") self.menu.append_separator() self.menu.append_menu("_" + _("Document"), True) self.menu.append_item(SET_BACKGROUND, "set-background") self.menu.ascend() self.menu.append_separator() self.menu.append_menu("_" + _("Export"), True) self.menu.append_item(EXPORT_TO_PDF, "export-to-pdf") self.menu.ascend() self.menu.append_separator() self.menu.append_item(gtk.STOCK_QUIT, "quit", "<Control>Q") self.menu.append_menu("_" + _("Edit")) self.menu.append_item(gtk.STOCK_UNDO, "undo", "<Control>Z") self.menu.append_item(gtk.STOCK_REDO, "redo", "<Control>Y") self.menu.append_separator() self.menu.append_item(gtk.STOCK_COPY, "copy", "<Control>C") self.menu.append_item(gtk.STOCK_CUT, "cut", "<Control>X") self.menu.append_item(gtk.STOCK_PASTE, "paste", "<Control>V") self.menu.append_separator() self.menu.append_item(gtk.STOCK_DELETE, "delete", "Delete") self.menu.append_separator() self.menu.append_item(gtk.STOCK_SELECT_ALL, "select-all", "<Control>A") self.menu.append_menu("_" + _("View")) self.menu.append_toggle(MARGINS_ENABLED, "margins") self.menu.append_toggle(GRID, "grid") self.menu.append_toggle(GUIDES, "guides") self.menu.append_toggle(SNAP_ENABLED, "snap") self.menu.append_toggle(_("Z-Order hint"), "hints", toggled=False) self.menu.append_separator() self.menu.append_toggle(gtk.STOCK_PROPERTIES, "properties") self.menu.append_toggle(_("Menubar"), "menubar") self.menu.append_toggle(_("Statusbar"), "statusbar") self.menu.append_menu("_" + _("Insert")) self.menu.append_item(LINE, "line") self.menu.append_item(ARC, "arc") self.menu.append_item(CURVE, "curve") self.menu.append_item(CONNECTOR, "connector") self.menu.append_menu(BOX, "box", True) self.menu.append_item(BOX, "box") self.menu.append_item(SPLIT_HORIZONTALLY, "split-horizontally") self.menu.append_item(SPLIT_VERTICALLY, "split-vertically") self.menu.append_item(REMOVE_SPLIT, "remove-split") self.menu.ascend() self.menu.append_item(ROUNDED_BOX, "rounded-box") self.menu.append_item(TEXT, "text") self.menu.append_item(TABLE, "table") self.menu.append_item(CHART, "chart") self.menu.append_item(BARCODE, "barcode") self.menu.append_item(IMAGE, "image") self.menu.append_menu("_" + _("Format")) self.menu.append_item(gtk.STOCK_SELECT_FONT, "select-font") self.menu.append_separator() self.menu.append_item(gtk.STOCK_SELECT_COLOR, "select-color") self.menu.append_menu("_" + _("Tools")) self.menu.append_item(GROUP, "group", "<Control>G") self.menu.append_item(UNGROUP, "ungroup", "<Control><Shift>G") self.menu.append_separator() self.menu.append_item(BRING_TO_FRONT, "bring-to-front", "<Control>plus") self.menu.append_item(BRING_TO_BACK, "bring-to-back", "<Control>minus") self.menu.append_separator() self.menu.append_menu("_" + _("Zoom"), True) self.menu.append_item(gtk.STOCK_ZOOM_FIT, "zoom-fit", "<Control>0") self.menu.append_item(gtk.STOCK_ZOOM_100, "zoom-100", "<Control>1") self.menu.append_item(gtk.STOCK_ZOOM_IN, "zoom-in", "<Control><Shift>plus") self.menu.append_item(gtk.STOCK_ZOOM_OUT, "zoom-out", "<Control><Shift>minus") self.menu.ascend() self.menu.append_separator() self.menu.append_menu("_" + _("Objects alignment"), True) self.menu.append_item(ALIGN_OBJECTS_NORTHWEST, "align-objects-northwest") self.menu.append_item(ALIGN_OBJECTS_NORTH, "align-objects-north") self.menu.append_item(ALIGN_OBJECTS_NORTHEAST, "align-objects-northeast") self.menu.append_item(ALIGN_OBJECTS_SOUTHWEST, "align-objects-southwest") self.menu.append_item(ALIGN_OBJECTS_SOUTH, "align-objects-south") self.menu.append_item(ALIGN_OBJECTS_SOUTHEAST, "align-objects-southeast") self.menu.append_item(ALIGN_OBJECTS_WEST, "align-objects-west") self.menu.append_item(ALIGN_OBJECTS_CENTER_BOTH, "align-objects-center-both") self.menu.append_item(ALIGN_OBJECTS_EAST, "align-objects-east") self.menu.append_item(ALIGN_OBJECTS_CENTER_HORIZONTAL, "align-objects-center-horizontal") self.menu.append_item(ALIGN_OBJECTS_CENTER_VERTICAL, "align-objects-center-vertical") self.menu.ascend() self.menu.append_menu("_" + _("Paper alignment"), True) self.menu.append_item(ALIGN_PAPER_NORTHWEST, "align-paper-northwest") self.menu.append_item(ALIGN_PAPER_NORTH, "align-paper-north") self.menu.append_item(ALIGN_PAPER_NORTHEAST, "align-paper-northeast") self.menu.append_item(ALIGN_PAPER_SOUTHWEST, "align-paper-southwest") self.menu.append_item(ALIGN_PAPER_SOUTH, "align-paper-south") self.menu.append_item(ALIGN_PAPER_SOUTHEAST, "align-paper-southeast") self.menu.append_item(ALIGN_PAPER_WEST, "align-paper-west") self.menu.append_item(ALIGN_PAPER_CENTER_BOTH, "align-paper-center-both") self.menu.append_item(ALIGN_PAPER_EAST, "align-paper-east") self.menu.append_item(ALIGN_PAPER_CENTER_HORIZONTAL, "align-paper-center-horizontal") self.menu.append_item(ALIGN_PAPER_CENTER_VERTICAL, "align-paper-center-vertical") self.menu.ascend() self.menu.append_menu("_" + _("Window")) self.menu.append_item(gtk.STOCK_FULLSCREEN, "fullscreen", "<Control>F") self.menu.append_menu("_" + _("Help"), right=True) self.menu.append_item(gtk.STOCK_HELP, "help", "F1") self.menu.append_separator() self.menu.append_item(gtk.STOCK_ABOUT, "about") self.menu.show_all() htoolbar = Toolbar(HORIZONTAL) vbox.pack_start(htoolbar, False, False) htoolbar.append(gtk.STOCK_NEW, "new") htoolbar.append(gtk.STOCK_OPEN, "open") htoolbar.append(gtk.STOCK_SAVE, "save") htoolbar.append_separator() htoolbar.append(gtk.STOCK_PRINT, "print") htoolbar.append_separator() htoolbar.append(gtk.STOCK_UNDO, "undo") htoolbar.append(gtk.STOCK_REDO, "redo") htoolbar.append_separator() htoolbar.append(gtk.STOCK_CUT, "cut") htoolbar.append(gtk.STOCK_COPY, "copy") htoolbar.append(gtk.STOCK_PASTE, "paste") htoolbar.append_separator() htoolbar.append(gtk.STOCK_DELETE, "delete") htoolbar.append_separator() htoolbar.append_with_submenu(LINE_STYLE_CONTINUOUS, "line-style-continuous") htoolbar.append_to_submenu(LINE_STYLE_POINT_DASH, "line-style-point-dash") htoolbar.append_to_submenu(LINE_STYLE_POINT, "line-style-point") htoolbar.append_to_submenu(LINE_STYLE_DASH, "line-style-dash") htoolbar.append_separator() htoolbar.append_with_submenu(gtk.STOCK_ZOOM_FIT, "zoom-fit") htoolbar.append_to_submenu(gtk.STOCK_ZOOM_100, "zoom-100") htoolbar.append_to_submenu(gtk.STOCK_ZOOM_IN, "zoom-in") htoolbar.append_to_submenu(gtk.STOCK_ZOOM_OUT, "zoom-out") htoolbar.append_separator() htoolbar.append_toggle(MARGINS_ENABLED, "margins") htoolbar.append_toggle(GRID, "grid") htoolbar.append_toggle(GUIDES, "guides") htoolbar.append_toggle(SNAP_ENABLED, "snap") htoolbar.append_separator() htoolbar.append(EXPORT_TO_PDF, "export-to-pdf") htoolbar.append_separator() htoolbar.append_toggle(GROUP, "group") htoolbar.append_separator() htoolbar.append(BRING_TO_FRONT, "bring-to-front") htoolbar.append(BRING_TO_BACK, "bring-to-back") htoolbar.append_separator() htoolbar.append_with_submenu(ALIGN_OBJECTS_CENTER_BOTH, "align-object-center-both") htoolbar.append_to_submenu(ALIGN_OBJECTS_NORTHWEST, "align-object-northwest") htoolbar.append_to_submenu(ALIGN_OBJECTS_NORTH, "align-object-north") htoolbar.append_to_submenu(ALIGN_OBJECTS_SOUTHWEST, "align-object-southwest") htoolbar.append_to_submenu(ALIGN_OBJECTS_NORTHEAST, "align-object-northeast") htoolbar.append_to_submenu(ALIGN_OBJECTS_SOUTH, "align-object-south") htoolbar.append_to_submenu(ALIGN_OBJECTS_SOUTHEAST, "align-object-southeast") htoolbar.append_to_submenu(ALIGN_OBJECTS_WEST, "align-object-west") htoolbar.append_to_submenu(ALIGN_OBJECTS_EAST, "align-object-east") htoolbar.append_to_submenu(ALIGN_OBJECTS_CENTER_HORIZONTAL, "align-object-center-horizontal") htoolbar.append_to_submenu(ALIGN_OBJECTS_CENTER_VERTICAL, "align-object-center-vertical") htoolbar.append_with_submenu(ALIGN_PAPER_CENTER_BOTH, "align-paper-center-both") htoolbar.append_to_submenu(ALIGN_PAPER_NORTHWEST, "align-paper-northwest") htoolbar.append_to_submenu(ALIGN_PAPER_NORTH, "align-paper-north") htoolbar.append_to_submenu(ALIGN_PAPER_SOUTHWEST, "align-paper-southwest") htoolbar.append_to_submenu(ALIGN_PAPER_NORTHEAST, "align-paper-northeast") htoolbar.append_to_submenu(ALIGN_PAPER_SOUTH, "align-paper-south") htoolbar.append_to_submenu(ALIGN_PAPER_SOUTHEAST, "align-paper-southeast") htoolbar.append_to_submenu(ALIGN_PAPER_WEST, "align-paper-west") htoolbar.append_to_submenu(ALIGN_PAPER_EAST, "align-paper-east") htoolbar.append_to_submenu(ALIGN_PAPER_CENTER_HORIZONTAL, "align-paper-center-horizontal") htoolbar.append_to_submenu(ALIGN_PAPER_CENTER_VERTICAL, "align-paper-center-vertical") htoolbar.append_separator() htoolbar.append(gtk.STOCK_HELP, "help") hbox = gtk.HBox() vbox.add(hbox) vtoolbar = Toolbar() vtoolbar.set_style(gtk.TOOLBAR_ICONS) hbox.pack_start(vtoolbar, False, False) vtoolbar.append(LINE, "line") vtoolbar.append(ARC, "arc") vtoolbar.append(CURVE, "curve") vtoolbar.append(CONNECTOR, "connector") vtoolbar.append_with_submenu(BOX, "box") vtoolbar.append_to_submenu(SPLIT_HORIZONTALLY, "split-horizontally") vtoolbar.append_to_submenu(SPLIT_VERTICALLY, "split-vertically") vtoolbar.append_to_submenu(REMOVE_SPLIT, "remove-split") vtoolbar.append(ROUNDED_BOX, "rounded-box") vtoolbar.append(TEXT, "text") vtoolbar.append(BARCODE, "barcode") vtoolbar.append(TABLE, "table") vtoolbar.append(CHART, "chart") vtoolbar.append(IMAGE, "image") notebook = gtk.Notebook() notebook.set_show_tabs(True) notebook.set_show_border(False) #notebook.set_tab_pos(gtk.POS_LEFT) notebook.set_tab_pos(gtk.POS_RIGHT) hbox.add(notebook) self.status = Statusbar() self.id = self.status.get_context_id(_("Edit mode")) vbox.pack_start(self.status, False, False) label = gtk.Label(_("Design view")) label.set_angle(90) self.editor = Editor(self) self.editor.set_paper() notebook.append_page(self.editor, label) label = gtk.Label(_("XML view")) label.set_angle(90) def get_source_view(): source = gtk.ScrolledWindow() source.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) view = gtk.TextView() self.code = gtk.TextBuffer() view.set_buffer(self.code) source.add(view) return source if '--source-editor-test' in sys.argv: while True: try: from ui.code_editor import SourcePad except: source = get_source_view() break source = SourcePad(self) self.code = source.buffer source.set_language("xml") break else: source = get_source_view() notebook.append_page(source, label) self.menu.connect("new", self.new) self.menu.connect("open", self.open) self.menu.connect("save", self.save) self.menu.connect("save-as", self.save_as) self.menu.connect("page-setup", self.page_setup) self.menu.connect("export-to-pdf", self.export_to_pdf) self.menu.connect("set-background", self.set_background) self.menu.connect("quit", self.quit) self.menu.connect("cut", self.editor.canvas.cut) self.menu.connect("copy", self.editor.canvas.copy) self.menu.connect("paste", self.editor.canvas.paste) self.menu.connect("delete", self.editor.canvas.delete) self.menu.connect("select-all", self.editor.canvas.select_all) self.menu.connect("margins", self.editor.canvas.toggle_margins) self.menu.connect("grid", self.editor.canvas.toggle_grid) self.menu.connect("guides", self.editor.canvas.toggle_guides) self.menu.connect("snap", self.editor.canvas.toggle_snap) self.menu.connect("hints", self.editor.canvas.toggle_hints) self.menu.connect("properties", self.editor.toggle_properties) self.menu.connect("menubar", self.toggle_menubar) self.menu.connect("statusbar", self.toggle_statusbar) self.menu.connect("bring-to-front", self.editor.canvas.bring_to_front) self.menu.connect("bring-to-back", self.editor.canvas.bring_to_back) self.menu.connect("align-paper-center-horizontal", self.editor.canvas.paper_center_horizontal) self.menu.connect("line", self.create, "Line") self.menu.connect("curve", self.create, "Curve") self.menu.connect("connector", self.create, "Connector") self.menu.connect("box", self.create, "Box") self.menu.connect("rounded-box", self.create, "Rounded") self.menu.connect("text", self.create, "Text") self.menu.connect("barcode", self.create, "BarCode") self.menu.connect("table", self.create, "Table") self.menu.connect("image", self.create, "Image") self.menu.connect("chart", self.create, "Chart") self.menu.connect("fullscreen", self.fullscreen) self.menu.connect("about", self.about) self.menu.connect("help", self.help) self.menu.connect("split-horizontally", self.editor.canvas.split_horizontally) self.menu.connect("split-vertically", self.editor.canvas.split_vertically) self.menu.connect("remove-split", self.editor.canvas.remove_split) htoolbar.connect("new", self.new) htoolbar.connect("open", self.open) htoolbar.connect("save", self.save) htoolbar.connect("snap", self.editor.canvas.toggle_snap) htoolbar.connect("grid", self.editor.canvas.toggle_grid) htoolbar.connect("guides", self.editor.canvas.toggle_guides) htoolbar.connect("margins", self.editor.canvas.toggle_margins) htoolbar.connect("cut", self.editor.canvas.cut) htoolbar.connect("copy", self.editor.canvas.copy) htoolbar.connect("paste", self.editor.canvas.paste) htoolbar.connect("delete", self.editor.canvas.delete) htoolbar.connect("bring-to-front", self.editor.canvas.bring_to_front) htoolbar.connect("bring-to-back", self.editor.canvas.bring_to_back) htoolbar.connect("export-to-pdf", self.export_to_pdf) htoolbar.connect("help", self.help) vtoolbar.connect("line", self.create, "Line") vtoolbar.connect("arc", self.create, "Arc") vtoolbar.connect("curve", self.create, "Curve") vtoolbar.connect("connector", self.create, "Connector") vtoolbar.connect("box", self.create, "Box") vtoolbar.connect("rounded-box", self.create, "Rounded") vtoolbar.connect("text", self.create, "Text") vtoolbar.connect("barcode", self.create, "BarCode") vtoolbar.connect("table", self.create, "Table") vtoolbar.connect("image", self.create, "Image") vtoolbar.connect("chart", self.create, "Chart") vtoolbar.connect("split-horizontally", self.editor.canvas.split_horizontally) vtoolbar.connect("split-vertically", self.editor.canvas.split_vertically) vtoolbar.connect("remove-split", self.editor.canvas.remove_split) notebook.connect("switch-page", self.switch) self.connect("key-press-event", self.key_press)
def __init__(self, root, sizeX, sizeY, title): super().__init__(root) # self.pack(expand='no', fill='both') self.root = root self.state_ = False root.wm_title(title) root.focus_force() self.img_ = create_img() self.pack(expand=True, fill=tk.BOTH) set_application_icons(root, 'ico') # imgdir self.path = pathlib.Path(cwddir) path_ = self.path.joinpath( 'Проекты') # каталог для файлов конвертора 'project' if not path_.exists(): os.mkdir(path_) self.b = {} # контейнер для виджетов self.dir_cvt = path_ self._zona = config.getfloat('System', 'vzona') self._opgl = 0 self.mb = config.getboolean('Amplituda', 'mb') # 1 - RGB # fxen = dict(fill=tk.X, expand=False) (self.glub_var, self.stop_var, self.time_var, self.numstr_var, self.ampl_var, self.skale_var, self.porog_var, self.frek_var) = (tk.StringVar() for _ in range(8)) self.tol_bar = Toolbar(self, bso_) # объект tolbar self.tol_bar.pack(fill=tk.X, expand=False) # ttk.Separator(self).pack(**fxen) self.head = Head(self) # объект этикетки head self.head.pack(fill=tk.X, expand=False) self.stbar = Footer(self, bso_) # объект строки состояния self.stbar.pack(side=tk.BOTTOM, fill=tk.X) self.sep = ttk.Separator(self) self.sep.pack(side=tk.BOTTOM, fill=tk.X, pady=1) self.frame_upr = ttk.Frame(self) # фрейм для управления self.frame_upr.pack(side=tk.BOTTOM, fill=tk.X) self.infobar = InfoBar(self) # объект Info self.infobar.pack(side=tk.BOTTOM, fill=tk.X) self.board = CanvasT(self, sizeX, sizeY, bso_) # объект CanvasT self.board.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.ser = RS232(trace) # объект Serial self.gser = Gps(trace) # объект Gps self.gser.tty.baudrate = 4800 self.gser.tty.timeout = 0.01 self._zg = config.getfloat('System', 'zagl') self.head.set_z(self.zg) # zg - свойство self.d0 = { 'L': 'МГ', 'M': 'СГ', 'H': 'БГ', 'C': 'B8', 'D': 'B10', 'B': 'Б6' } self.fil_ametka = 'DodgerBlue2' self.stringfile = 0 # число строк записанных в файл self.txt_opmetka = 0 # счётчик оперативных отметок ручн. self.y_g = 0 # self.error = 0 # занулить ошибки при старте проги self.file_gals = None # нет файла для записи галса self.man_metkawriteok = (False, False) self.avto_metkawriteok = False self.yold_ = 0.0 # для перемещен текста врем. меток self.hide_metka = False # Показывать метки self.hide_grid = False # Показывать гор. линии self.gl_0 = 0 self.d_gps = None self.last_d_gps = None self.tavto_ = None self.tbname = None self.view_db = None # self.count_gps = 0 self.ida = None self.ida_ = True self.last_sec = -1 self.count_tmetka = 1 self.vz_last = self.rej_last = 0 self.diap_last = self.old_depth = 'МГ' self.helpDialog = None self.color_ch = True self.t_pausa = 0 self.y_metka = self.board.y_top self.flag_gals = False self.vzvuk = 1500 if bso_: self.gui_main() self.sep.pack_forget()
def __init__(self): s2idirectory.load() Gtk.Window.__init__(self, title="Harpia") #self.set_default_size(800,600) self.set_property("height_request", 500) self.maximize() self.set_size_request(900, 500) #Controla o tamanho minimo self.main_control = MainControl(self) self.connect("check-resize", self.__resize) #GUI components self.menu = Menu(self) self.toolbar = Toolbar(self) self.search = SearchBar(self) self.blocks_tree_view = BlocksTreeView(self) self.block_properties = BlockProperties(self) self.work_area = WorkArea(self) self.status = Status(self) s2idirectory.Log = self.status # vbox main # ----------------------------------------------------- # | Menu # ----------------------------------------------------- # | Toolbar # ----------------------------------------------------- # | V Paned bottom # ----------------------------------------------------- # First Vertical Box vbox_main = Gtk.VBox() self.add(vbox_main) vbox_main.pack_start(self.menu, False, True, 0) vbox_main.pack_start(self.toolbar, False, False, 0) self.vpaned_bottom = Gtk.Paned.new(Gtk.Orientation.VERTICAL) vbox_main.add(self.vpaned_bottom) # vpaned_bottom # ----------------------------------------------------- # | hpaned_work_area # ===================================================== # | status # ----------------------------------------------------- hpaned_work_area = Gtk.HPaned() self.vpaned_bottom.add1(hpaned_work_area) self.vpaned_bottom.add2(self.__create_frame(self.status)) self.vpaned_bottom.set_position(420) self.vpaned_bottom.set_size_request(50, 50) # hpaned_work_area # ----------------------------------------------------- # | vbox_left || work_area # ----------------------------------------------------- vbox_left = Gtk.VBox(False, 0) hpaned_work_area.add1(vbox_left) hpaned_work_area.add2(self.work_area) # vbox_left # ----------------------------------------------------- # |search # ----------------------------------------------------- # |vpaned_left # ----------------------------------------------------- vbox_left.pack_start(self.search, False, False, 0) self.vpaned_left = Gtk.VPaned() vbox_left.pack_start(self.vpaned_left, True, True, 0) # vpaned_left # ----------------------------------------------------- # |blocks_tree_view # ===================================================== # | block_properties # ----------------------------------------------------- self.vpaned_left.add1(self.__create_frame(self.blocks_tree_view)) self.vpaned_left.add2(self.__create_frame(self.block_properties)) self.vpaned_left.set_position(300) #self.vpaned_left.set_size_request(50,50) #self.vpaned_left.set_property("min-position",150) self.connect("delete-event", self.quit) # Load Examples list_of_examples = glob(os.environ['HARPIA_DATA_DIR'] + "examples/*") list_of_examples.sort() for example in list_of_examples: self.menu.add_example(example) self.menu.add_recent_file("/home/flavio/Desktop/harpiaTest.hrp") self.menu.add_recent_file("/home/flavio/Desktop/harpiaTest2.hrp")
def __init__(self): """ This method is constructor. """ System() Gtk.Window.__init__(self, title="Mosaicode") self.resize(System.properties.width, System.properties.height) self.main_control = MainControl(self) # GUI components self.menu = Menu(self) self.toolbar = Toolbar(self) self.search = SearchBar(self) self.block_notebook = BlockNotebook(self) self.property_box = PropertyBox(self) self.work_area = WorkArea(self) self.status = Status(self) self.block_menu = BlockMenu() self.menu.add_help() System.set_log(self.status) # vbox main # ----------------------------------------------------- # | Menu # ----------------------------------------------------- # | Toolbar # ----------------------------------------------------- # | V Paned bottom # ----------------------------------------------------- # First Vertical Box vbox_main = Gtk.VBox() self.add(vbox_main) vbox_main.pack_start(self.menu, False, True, 0) vbox_main.pack_start(self.toolbar, False, False, 0) self.vpaned_bottom = Gtk.Paned.new(Gtk.Orientation.VERTICAL) vbox_main.add(self.vpaned_bottom) # vpaned_bottom # ----------------------------------------------------- # | hpaned_work_area # ===================================================== # | status # ----------------------------------------------------- self.hpaned_work_area = Gtk.HPaned() self.hpaned_work_area.connect("accept-position", self.__resize) self.hpaned_work_area.set_position(System.properties.hpaned_work_area) self.vpaned_bottom.add1(self.hpaned_work_area) self.vpaned_bottom.add2(self.__create_frame(self.status)) self.vpaned_bottom.set_position(System.properties.vpaned_bottom) self.vpaned_bottom.set_size_request(50, 50) # hpaned_work_area # ----------------------------------------------------- # | vbox_left || work_area # ----------------------------------------------------- vbox_left = Gtk.VBox(False, 0) self.hpaned_work_area.add1(vbox_left) self.hpaned_work_area.add2(self.work_area) # vbox_left # ----------------------------------------------------- # |search # ----------------------------------------------------- # |vpaned_left # ----------------------------------------------------- vbox_left.pack_start(self.search, False, False, 0) self.vpaned_left = Gtk.VPaned() vbox_left.pack_start(self.vpaned_left, True, True, 0) # vpaned_left # ----------------------------------------------------- # |blocks_tree_view # ===================================================== # |property_box # ----------------------------------------------------- self.vpaned_left.add1(self.__create_frame(self.block_notebook)) self.vpaned_left.add2(self.__create_frame(self.property_box)) self.vpaned_left.set_position(System.properties.vpaned_left) self.connect("delete-event", self.main_control.exit) self.connect("key-press-event", self.__on_key_press) self.connect("check-resize", self.__resize) self.main_control.init()
import tkinter as tk from toolbar import Toolbar from text_write import TextWrite from statusbar import Statusbar from linebar import Linebar from menu import Menu main_application = tk.Tk() toolbar = Toolbar(main_application) linebar = Linebar(main_application) text_write = TextWrite(main_application, toolbar) statusbar = Statusbar(main_application, text_write, linebar) menu = Menu(main_application, text_write, statusbar, toolbar, linebar) main_application.mainloop()
pygame.draw.polygon(draw_displacement_icon, (255, 0, 0), [(0, 0), (30, 0), (20, 50), (0, 50)]) draw_mask_tool = FreeDrawTool(mask, unmask) draw_mask_icon = pygame.Surface((50, 50)) draw_mask_icon.fill((0, 0, 0)) pygame.draw.polygon(draw_mask_icon, (255, 0, 255), [(0, 0), (30, 0), (20, 50), (0, 50)]) set_speed_tool = SetValueDrawTool(wave_speed, 9, 1, 9, 1, left_draw=set_wave_speed, right_draw=unset_wave_speed) set_speed_icon = create_icon_from_text("c") set_damping_tool = SetValueDrawTool(damping, 3, 0, 9, 1, left_draw=set_damping, right_draw=unset_damping) set_damping_icon = create_icon_from_text("γ") toolbar = Toolbar( [draw_displacement_icon, draw_mask_icon, set_speed_icon, set_damping_icon], [draw_displacement_tool, draw_mask_tool, set_speed_tool, set_damping_tool])
from youtube_dl import YoutubeDL from datetime import timedelta from toolbar import Toolbar class Logger(object): def debug(self, msg): pass def warning(self, msg): pass def error(self, msg): print(msg) tool = Toolbar() def hook(p): if p["status"] == "finished": print("Download finished!") elif p["status"] == "downloading": perc = float(p["_percent_str"][:-1]) tool.progress(perc) default_opts = { "quiet": True, "logger": Logger(),
import tkinter as tk # tkinter from settings import Settings # Basic settings from menu import Menu # Menu from toolbar import Toolbar # Toolbar(font, fontSize, fontColor,alignment) from text_write import TextWrite # Text (i.e; where to write) from statusbar import Statusbar # Statusbar(for word count) # Tk -> It is mediator b/w OS and Pyhon to work on GUI. root = tk.Tk() settings = Settings(root) # Basic settings toolbar = Toolbar(root, settings) # Toolbar(font, fontSize, fontColor, alignment) text_write = TextWrite(root, toolbar) # Text (i.e; where to write) statusbar = Statusbar(root, text_write) # Statusbar(for word count) menu = Menu( root, settings, text_write, # Menu statusbar, toolbar) # mainloop -> Sustained our program not to close self assertive. root.mainloop()