def Init_page(self): """ Dessine le fond de page """ # Ombre de la page ombre1 = FloatCanvas.Rectangle( (self.taille_page[0] - 1, -EPAISSEUR_OMBRE), (EPAISSEUR_OMBRE + 1, self.taille_page[1]), LineWidth=0, LineColor=COULEUR_OMBRE_PAGE, FillColor=COULEUR_OMBRE_PAGE, InForeground=False) ombre2 = FloatCanvas.Rectangle( (EPAISSEUR_OMBRE, -EPAISSEUR_OMBRE), (self.taille_page[0] - 1, EPAISSEUR_OMBRE + 1), LineWidth=0, LineColor=COULEUR_OMBRE_PAGE, FillColor=COULEUR_OMBRE_PAGE, InForeground=False) # Fond de page rect = FloatCanvas.Rectangle((0, 0), self.taille_page, LineWidth=1, FillColor=COULEUR_FOND_PAGE, InForeground=False) self.page = self.canvas.AddGroup([ombre1, ombre2, rect], InForeground=False)
def __init__(self, Label, XY, Diameter, TextColor="Black", LineColor="Black", LineStyle="Solid", LineWidth=1, FillColor=None, FillStyle="Solid", InForeground=False, IsVisible=True): self.XY = np.asarray(XY, np.float).reshape(2, ) Label = FC.ScaledText( Label, self.XY, Size=Diameter / 2.0, Color=TextColor, Position='cc', ) self.Circle = FC.Circle( self.XY, Diameter, FillColor=FillColor, LineStyle=None, ) FC.Group.__init__(self, [self.Circle, Label], InForeground, IsVisible)
def test_lib_floatcanvas_fc_polygon(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.Polygon((2, 2)) fccanvas.AddObject(obj) fccanvas.Destroy()
def __init__(self, main_cfg): super().__init__() w, h = 1920, 1080 super(PyPublisher, self).__init__(None, title="MIBCI", size=(w, h)) # self.main_cfg = main_cfg self.is_pre = main_cfg.is_pre self.session_type = main_cfg.session_type self.save_path = main_cfg.subject.get_date_dir() self.NF_time_len = main_cfg.stim_cfg.NF_training_duration self.init_data() self.Bind(wx.EVT_CHAR_HOOK, self.onKey) self.Bind(wx.EVT_CLOSE, self.onClose) self.rect0 = FloatCanvas.Rectangle((0, 0), (0, 0), FillColor='Red') # self.rect1 = FloatCanvas.Rectangle((0, 0), (0, 0), FillColor='Red') self.rect_t = FloatCanvas.Rectangle((0, 0), (0, 0), FillColor='Red') # 进度条 self.Canvas = FloatCanvas.FloatCanvas( self, -1, size=(w, h), ProjectionFun=None, Debug=0, BackgroundColor="Black", ) self.SetSize(x=1920, y=0, width=w, height=h)
def test_lib_floatcanvas_fc_rectangle(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.Rectangle((2, 2), (2, 2)) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_arc(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.Arc((10, 10), (20, 20), (5, 5)) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_circle(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.Circle((2, 2), 2) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_arrowline(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.ArrowLine((10, 10)) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_squarepoint(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.SquarePoint((2, 2)) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_text(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.Text("some text", (2, 2)) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_spline(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.Spline((2, 2)) fccanvas.AddObject(obj) fccanvas.Destroy()
def test_lib_floatcanvas_fc_scaledtextbox(self): fccanvas = fc.FloatCanvas(self.frame) obj = fc.ScaledTextBox("some text", (2, 2), 100) fccanvas.AddObject(obj) fccanvas.Destroy()
def update_labels(self): Canvas = self.canvas try: Canvas.RemoveObject(self.labelGroup) except ValueError: pass self.labelGroup = FloatCanvas.Group() for room in self.sim.hospital.layout.values(): #draw output for allocation room if isinstance(room, BedAllocationRoom): settings = ROOM_SETTINGS['room_mapping'][type(room)] timeToIBA = room.get_time_to_initial_bed_assignment() numClosedBeds = room.get_num_closed_beds_by_category()[1] self.labelGroup.AddObject( FloatCanvas.ScaledText( "t to IBA = {}({})".format(timeToIBA[0], timeToIBA[1]), (room.guiCoords[0], room.guiCoords[1] - settings[HEIGHT] / 2.0 - ROOM_SETTINGS['name_text_size']), Position="tc", Size=ROOM_SETTINGS['name_text_size'])) self.labelGroup.AddObject( FloatCanvas.ScaledText( "Num Closed Beds = {}".format(numClosedBeds), (room.guiCoords[0], room.guiCoords[1] - settings[HEIGHT] / 2.0 - 2 * ROOM_SETTINGS['name_text_size']), Position="tc", Size=ROOM_SETTINGS['name_text_size'])) Canvas.AddObject(self.labelGroup) Canvas.Draw()
def test_lib_floatcanvas_fc_scaledbitmap(self): fccanvas = fc.FloatCanvas(self.frame) bmp = wx.Bitmap(pngFile) obj = fc.ScaledBitmap(bmp, (2, 2), 100) fccanvas.AddObject(obj)
def test_lib_floatcanvas_fc_bitmap(self): fccanvas = fc.FloatCanvas(self.frame) bmp = wx.Bitmap(pngFile) obj = fc.Bitmap(bmp, (2, 2)) fccanvas.AddObject(obj) fccanvas.Destroy()
def __init__(self,parent, id,title,position,size): wx.Frame.__init__(self,parent, id,title,position, size) self.CreateStatusBar() # Add the Canvas NC = NavCanvas.NavCanvas(self, size= (500,500), ProjectionFun = None, Debug = 0, ) self.Canvas = NC.Canvas self.Show(True) # --- draw link between centroids --- # build link link_pts = get_line_pts([-100,-170],[500,301],order=4, num=100) # construct arrow in center of line arrow_coords = build_arrow(link_pts, arrow_length=3) # plot the link and arrowhead self.Canvas.AddObject(FloatCanvas.Polygon(arrow_coords,FillColor='Blue',InForeground=True)) #self.Canvas.AddObject(FloatCanvas.Line(link_pts,LineWidth=2,InForeground=False)) cmap = plt.cm.Blues num_colors = len(link_pts) colors = [cmap(1.*i/num_colors) for i in range(num_colors)] # import random # r = lambda: random.randint(0,255) for i in range(0,len(link_pts)-1): #color = '#%02X%02X%02X' % (r(),r(),r()) color = mcolors.rgb2hex(colors[i]) #color = colors[i][:-1] self.Canvas.AddObject(FloatCanvas.Line((link_pts[i],link_pts[i+1]),LineColor=color,LineWidth=2,InForeground=False)) # --- draw rounded rectangle objects --- # draw some boxes draw_rounded_rectangle(self.Canvas,(-100,-170),width=200, height=100) draw_rounded_rectangle(self.Canvas,(500,301), width=250, height=150) # zoom to bounding box self.Canvas.ZoomToBB() return None
def test_floatcanvas_group(self): item1 = FloatCanvas.Circle((0, 0), 10) item2 = FloatCanvas.Circle((0, 5), 10) item3 = FloatCanvas.Circle((5, 5), 10) try: FloatCanvas.Group([item1, item2, item3]) except AttributeError: self.fail( "Has wx/lib/floatcanvas/FCObjects.py been edited correctly?")
def draw_img(self, path, xy, height=None): image = wx.Image(path) if height is None: img = FloatCanvas.Bitmap(image, xy, Position='cc') else: img = FloatCanvas.ScaledBitmap(image, xy, Height=height, Position='cc') self.Canvas.AddObject(img) self.Canvas.Draw()
def __init__(self, parent, id, title, position, size): wx.Frame.__init__(self, parent, id, title, position, size) ## Set up the MenuBar MenuBar = wx.MenuBar() FileMenu = wx.Menu() OpenMenu = FileMenu.Append(wx.ID_ANY, "&Open", "Open BNA") self.Bind(wx.EVT_MENU, self.OpenBNA, OpenMenu) SaveMenu = FileMenu.Append(wx.ID_ANY, "&Save", "Save BNA") self.Bind(wx.EVT_MENU, self.SaveBNA, SaveMenu) CloseMenu = FileMenu.Append(wx.ID_EXIT, "", "Close Application") self.Bind(wx.EVT_MENU, self.OnQuit, CloseMenu) MenuBar.Append(FileMenu, "&File") view_menu = wx.Menu() ZoomMenu = view_menu.Append(wx.ID_ANY, "Zoom to &Fit", "Zoom to fit the window") self.Bind(wx.EVT_MENU, self.ZoomToFit, ZoomMenu) MenuBar.Append(view_menu, "&View") help_menu = wx.Menu() AboutMenu = help_menu.Append(wx.ID_ABOUT, "", "More information About this program") self.Bind(wx.EVT_MENU, self.OnAbout, AboutMenu) MenuBar.Append(help_menu, "&Help") self.SetMenuBar(MenuBar) self.CreateStatusBar() # Add the Canvas self.Canvas = NavCanvas.NavCanvas( self, -1, (500, 500), Debug=0, BackgroundColor="DARK SLATE BLUE").Canvas wx.EVT_CLOSE(self, self.OnCloseWindow) FloatCanvas.EVT_MOTION(self.Canvas, self.OnMove) FloatCanvas.EVT_LEFT_UP(self.Canvas, self.OnLeftUp) FloatCanvas.EVT_LEFT_DOWN(self.Canvas, self.OnLeftDown) try: self.FileDialog = wx.FileDialog(self, "Pick a BNA file", ".", "", "*", wx.FD_OPEN) except wx._core.PyAssertionError: self.FileDialog = None self.ResetSelections() return None
def __init__( self, Label, XY, WH, BackgroundColor="Yellow", TextColor="Black", InForeground=False, IsVisible=True, ): XY = N.asarray(XY, N.float).reshape(2) WH = N.asarray(WH, N.float).reshape(2) Label = FC.ScaledText(Label, XY, Size=WH[1] / 2.0, Color=TextColor, Position="cc") self.Ellipse = FC.Ellipse((XY - WH / 2.0), WH, FillColor=BackgroundColor, LineStyle=None) FC.Group.__init__(self, [self.Ellipse, Label], InForeground, IsVisible)
def add_image(self, filename): print('Loading ' + filename) image = wx.Image(filename) img = FloatCanvas.ScaledBitmap2(image, (0, 0), Height=image.GetHeight(), Position='tl') self.Canvas.AddObject(img)
def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) self.CreateStatusBar() MenuBar = wx.MenuBar() FileMenu = wx.Menu() item = FileMenu.Append(wx.ID_EXIT, text="&Exit") self.Bind(wx.EVT_MENU, self.OnQuit, item) item = FileMenu.Append(wx.ID_ANY, text="&Open") self.Bind(wx.EVT_MENU, self.OnOpen, item) item = FileMenu.Append(wx.ID_ANY, text="&Save Image") self.Bind(wx.EVT_MENU, self.OnSaveImage, item) MenuBar.Append(FileMenu, "&File") self.SetMenuBar(MenuBar) # Add the Canvas Canvas = NavCanvas.NavCanvas(self, -1, size=(500, 500), ProjectionFun=None, Debug=0, BackgroundColor=self.background_color, ).Canvas self.Canvas = Canvas FloatCanvas.EVT_MOTION(self.Canvas, self.OnMove) self.Show() Canvas.ZoomToBB()
def __init__(self, parent, xform, color, isactive, isselected, style): self.xform = xform self.coefs = xform.coefs self.parent = parent points = xform.points self.triangle = AlphaPolygon(points, LineColor=color, FillColor=color, LineStyle=style, Opacity=isselected * 96 or isactive * 64) diameter = parent.circle_radius * 2 circles = map(partial(FC.Circle, Diameter=diameter, LineColor=color), points) text = map(partial(FC.Text, Size=10, Color=color), "XYO", points) self._circles = circles if isactive: parent._cornerpoints = self.GetCornerPoints() corners = [ FC.Line(i, LineColor=color) for i in parent._cornerpoints ] text.extend(corners) FC.Group.__init__(self, [self.triangle] + circles + text)
def __init__(self, parent, id=wx.ID_ANY, **kwargs): # The rest just get passed into FloatCanvas wx.Panel.__init__(self, parent, id, size=wx.Size(0, 0)) self.GuiMouse = GUIMouse() self.GuiZoomIn = GUIZoomIn() self.GuiZoomOut = GUIZoomOut() self.GuiMove = GUIMove() self.GuiLink = GUILink() self.Modes = [ ("Pointer", self.GuiMouse, icons.Cursor.GetBitmap()), ("Zoom In", self.GuiZoomIn, icons.Zoom_In.GetBitmap()), ("Zoom Out", self.GuiZoomOut, icons.Zoom_Out.GetBitmap()), ] # Create the vertical sizer for the toolbar and Panel box = wx.BoxSizer(wx.VERTICAL) self.FloatCanvas = FloatCanvas.FloatCanvas(self, **kwargs) box.Add(self.FloatCanvas, 1, wx.GROW) self.SetSizerAndFit(box)
def _init_ui(self): """ Creates the UI Elements for the wafer map and binds various events such as mouse wheel change (zoom) and left-click+drag (pan). """ # Create items to add to our layout self.canvas = FloatCanvas.FloatCanvas( self, BackgroundColor="BLACK", ) # Initialize the FloatCanvas. Needs to come before adding items! self.canvas.InitAll() # Create the legend self._create_legend() # Draw the die and wafer objects (outline, crosshairs) on the canvas self.draw_die() if self.plot_die_centers: self.draw_die_center() self.draw_wafer_objects() # Bind events to the canvas self._bind_events() # Create layout manager and add items self.hbox = wx.BoxSizer(wx.HORIZONTAL) self.hbox.Add(self.legend, 0, wx.EXPAND) self.hbox.Add(self.canvas, 1, wx.EXPAND) self.SetSizer(self.hbox)
def _init_ui(self): """Create the UI Elements and bind various events.""" # Create items to add to our layout self.canvas = FloatCanvas.FloatCanvas( self, BackgroundColor="BLACK", ) # Initialize the FloatCanvas. Needs to come before adding items! self.canvas.InitAll() # Create the legend self._create_legend() # Draw the die and wafer objects (outline, crosshairs, etc) on the canvas if self.session == "r": # if session as r (read): draw die self.draw_die() if self.plot_die_centers: self.draw_die_center() self.draw_wafer_objects() # Bind events to the canvas self._bind_events() # Create layout manager and add items self.hbox = wx.BoxSizer(wx.HORIZONTAL) self.hbox.Add(self.legend, 0, wx.EXPAND) self.hbox.Add(self.canvas, 1, wx.EXPAND) self.SetSizer(self.hbox)
def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) self.CreateStatusBar() # Add the Canvas Canvas = NavCanvas.NavCanvas(self, ProjectionFun = None, BackgroundColor = "DARK SLATE BLUE", ).Canvas Canvas.MaxScale=4 # sets the maximum zoom level self.Canvas = Canvas FloatCanvas.EVT_MOTION(self.Canvas, self.OnMove ) # create the image: image = wx.Image(ImageFile) self.width, self.height = image.GetSize() img = Canvas.AddScaledBitmap( image, (0,0), Height=image.GetHeight(), Position = 'tl', ) #Box.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Binding) ## now set up a timer self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.AddPoint, self.timer) self.Show() Canvas.ZoomToBB() self.timer.Start(20)
def OnLeftDown(self,event): x = event.Coords[0] y = event.Coords[1] print("coordinates: ",x,y) rect = FloatCanvas.Rectangle((x,y), (300, 40), FillColor='SKY BLUE') self.nav_canvas.AddObject(rect) self.nav_canvas.Draw()
def recoding_on_mouse_move(self, event): if self.now != 1: # judge Rectangle whether first draw if first draw, don't remove self.canvas.RemoveObject(self.rect_venv) ds_x, ds_y = self.die_size gc_x, gc_y = self.grid_center dc_x, dc_y = wm_utils.coord_to_grid( event.Coords, self.die_size, self.grid_center, ) self.dc_x, self.dc_y = dc_x, dc_y self.now += 1 goal_x, goal_y = wm_utils.grid_to_rect_coord( (dc_x, dc_y), self.die_size, self.grid_center) r1 = math.sqrt(self.start_x**2 + self.start_y**2) r2 = math.sqrt(self.start_x**2 + goal_y**2) r3 = math.sqrt(goal_x**2 + goal_y**2) r4 = math.sqrt(goal_x**2 + self.start_y**2) # judge whether out of circle if out: not draw if r1 <= self.wafer_info.dia / 2 and r2 <= self.wafer_info.dia / 2 and r3 <= self.wafer_info.dia / 2 and r4 <= self.wafer_info.dia / 2: self.rect_venv = FloatCanvas.Rectangle( (self.start_x, self.start_y), (goal_x - self.start_x, goal_y - self.start_y), LineStyle=None, FillColor="Green") self.canvas.AddObject(self.rect_venv) self.draw_wafer_objects() # move to draw die need redraw grid self.canvas.Draw() else: self.canvas.Draw()
def Dessine_etiquettes(self): # Calcul du nbre de colonnes et de lignes if self.largeurEtiquette < 1 or self.hauteurEtiquette < 1: nbreColonnes = 0 nbreLignes = 0 else: nbreColonnes = (self.largeurPage - self.margeGauche - self.margeDroite + self.espaceHorizontal) / ( self.largeurEtiquette + self.espaceHorizontal) nbreLignes = (self.hauteurPage - self.margeHaut - self.margeBas + self.espaceVertical) / (self.hauteurEtiquette + self.espaceVertical) # Dessin des étiquettes numColonne = 0 numLigne = 0 y = self.hauteurPage - self.margeHaut - self.hauteurEtiquette for numLigne in range(0, nbreLignes): x = self.margeGauche for numColonne in range(0, nbreColonnes): rect = FloatCanvas.Rectangle( numpy.array([x, y]), numpy.array([self.largeurEtiquette, self.hauteurEtiquette]), LineWidth=0.25, LineColor=COULEUR_BORD_ETIQUETTE, FillColor=COULEUR_FOND_ETIQUETTE, InForeground=True) self.canvas.AddObject(rect) x += (self.largeurEtiquette + self.espaceHorizontal) y -= (self.hauteurEtiquette + self.espaceVertical)