python类EVT_PAINT的实例源码

BlockPreviewDialog.py 文件源码 项目:beremiz 作者: nucleron 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self, parent, controller, tagname, title):
        """
        Constructor
        @param parent: Parent wx.Window of dialog for modal
        @param controller: Reference to project controller
        @param tagname: Tagname of project POU edited
        @param title: Title of dialog frame
        """
        wx.Dialog.__init__(self, parent, title=title)

        # Save reference to
        self.Controller = controller
        self.TagName = tagname

        # Label for preview
        self.PreviewLabel = wx.StaticText(self, label=_('Preview:'))

        # Create Preview panel
        self.Preview = wx.Panel(self, style=wx.SIMPLE_BORDER)
        self.Preview.SetBackgroundColour(wx.WHITE)

        # Add function to preview panel so that it answers to graphic elements
        # like Viewer
        setattr(self.Preview, "GetDrawingMode", lambda: FREEDRAWING_MODE)
        setattr(self.Preview, "GetScaling", lambda: None)
        setattr(self.Preview, "GetBlockType", controller.GetBlockType)
        setattr(self.Preview, "IsOfType", controller.IsOfType)

        # Bind paint event on Preview panel
        self.Preview.Bind(wx.EVT_PAINT, self.OnPaint)

        # Add default dialog buttons sizer
        self.ButtonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
        self.Bind(wx.EVT_BUTTON, self.OnOK,
                  self.ButtonSizer.GetAffirmativeButton())

        self.Element = None            # Graphic element to display in preview
        self.MinElementSize = None     # Graphic element minimal size

        # Variable containing the graphic element name when dialog is opened
        self.DefaultElementName = None
        self.Fit()

        # List of variables defined in POU {var_name: (var_class, var_type),...}
        self.VariableList = {}
imViewer_Simple.py 文件源码 项目:bids 作者: robertoostenveld 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def __init__(self, parent, title):
        """Create the pydicom image example's main frame window."""

        wx.Frame.__init__(self, parent, id=-1, title="", pos=wx.DefaultPosition,
                          size=wx.Size(w=1024, h=768),
                          style=wx.DEFAULT_FRAME_STYLE | wx.SUNKEN_BORDER | wx.CLIP_CHILDREN)

        # --------------------------------------------------------
        # Set up the menubar.
        # --------------------------------------------------------
        self.mainmenu = wx.MenuBar()

        # Make the 'File' menu.
        menu = wx.Menu()
        item = menu.Append(wx.ID_ANY, '&Open', 'Open file for editing')
        self.Bind(wx.EVT_MENU, self.OnFileOpen, item)
        item = menu.Append(wx.ID_ANY, 'E&xit', 'Exit Program')
        self.Bind(wx.EVT_MENU, self.OnFileExit, item)
        self.mainmenu.Append(menu, '&File')

        # Attach the menu bar to the window.
        self.SetMenuBar(self.mainmenu)

        # --------------------------------------------------------
        # Set up the main splitter window.
        # --------------------------------------------------------
        self.mainSplitter = wx.SplitterWindow(self, style=wx.NO_3D | wx.SP_3D)
        self.mainSplitter.SetMinimumPaneSize(1)

        # -------------------------------------------------------------
        # Create the folderTreeView on the left.
        # -------------------------------------------------------------
        self.dsTreeView = wx.TreeCtrl(self.mainSplitter, style=wx.TR_LINES_AT_ROOT | wx.TR_HAS_BUTTONS)

        # --------------------------------------------------------
        # Create the ImageView on the right pane.
        # --------------------------------------------------------
        self.imView = wx.Panel(self.mainSplitter, style=wx.VSCROLL | wx.HSCROLL | wx.CLIP_CHILDREN)
        self.imView.Bind(wx.EVT_PAINT, self.OnPaint)
        self.imView.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
        self.imView.Bind(wx.EVT_SIZE, self.OnSize)

        # --------------------------------------------------------
        # Install the splitter panes.
        # --------------------------------------------------------
        self.mainSplitter.SplitVertically(self.dsTreeView, self.imView)
        self.mainSplitter.SetSashPosition(300, True)

        # --------------------------------------------------------
        # Initialize some values
        # --------------------------------------------------------
        self.dcmdsRoot = False
        self.foldersRoot = False
        self.loadCentered = True
        self.bitmap = None
        self.Show(True)
frame_nav.py 文件源码 项目:GRIPy 作者: giruenf 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def __init__(self, data_index_uid, display, is_range, min_idx, max_idx, *args, **kwargs):
        super(DimensionPanel, self).__init__(*args, **kwargs)
        self.SetSize(300, 50)
        #
        self.data_index_uid = data_index_uid
        OM =  ObjectManager(self)
        obj = OM.get(data_index_uid)
        #
        main_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, obj.name)
        #
        self.top_panel = wx.Panel(self)
        self.top_sizer = wx.BoxSizer(wx.HORIZONTAL)
        #
        self.check_display = wx.CheckBox(self.top_panel, -1, label='Display')  
        self.check_display.Bind(wx.EVT_CHECKBOX, self._on_check_display)                  
        self.top_sizer.Add(self.check_display, 1, wx.ALIGN_CENTER|wx.LEFT, 30)
        #
        self.check_range = wx.CheckBox(self.top_panel, -1, label='Range')
        self.check_range.Bind(wx.EVT_CHECKBOX, self._on_check_range)   
        self.top_sizer.Add(self.check_range, 1, wx.ALIGN_CENTER|wx.RIGHT, 30)
        self.top_panel.SetSizer(self.top_sizer)
        #
        main_sizer.Add(self.top_panel, 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 3)
        #
        self.label = obj.name
        self.vec = obj.data
        self.display = display
        self.is_range = is_range
        #
        self.bottom_panel = wx.Panel(self)
        self.bottom_sizer = wx.BoxSizer(wx.VERTICAL)
        self.slider = RangeSlider(self.bottom_panel)
        self.bottom_sizer.Add(self.slider, 0, wx.EXPAND)
        self.text_value = wx.StaticText(self.bottom_panel, -1)
        self.bottom_sizer.Add(self.text_value, 0, wx.ALIGN_CENTER)
        self.bottom_panel.SetSizer(self.bottom_sizer)
        #
        main_sizer.Add(self.bottom_panel, 0, wx.EXPAND)
        #
        self.slider.SetRange(0, len(self.vec)-1)
        self.min_idx = min_idx
        self.max_idx = max_idx
        #
        if self.display:
            self.set_check_display(1)
        else:
            self.set_check_display(0)
        # 
        self.Bind(wx.EVT_PAINT, self._on_paint)
        self.SetSizer(main_sizer)
        main_sizer.Layout()
trackssplitter.py 文件源码 项目:GRIPy 作者: giruenf 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def __init__(self, parent, *args, **kwargs):#id=-1,
                 #pos = wx.DefaultPosition, size = wx.DefaultSize,
                 #style = 0, name="multiSplitter", borderSize = 2,
            #    borderColor=(0,0,0), sashColor=(0,0,0)):

        # always turn on tab traversal
        style = wx.TAB_TRAVERSAL
        # and turn off any border styles
        style &= ~wx.BORDER_MASK
        style |= wx.BORDER_NONE

        # initialize the base class
        wx.Panel.__init__(self, parent, *args, **kwargs)#id, pos, size, style, name)
        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)

        # initialize data members
        self._windows = []
        self._sashes = []
        self._permitUnsplitAlways = self.HasFlag(wx.SP_PERMIT_UNSPLIT)

        self._dragMode = wx.SPLIT_DRAG_NONE
        self._working_sash = -1
        self.__absolute_sash_pos = 0
        self._oldY = 0
        self._checkRequestedSashPosition = False
        self._minimumPaneSize = 0

        self._sashCursorWE = wx.Cursor(wx.CURSOR_SIZEWE)

        self._needUpdating = False
        self._isHot = False
        self._drawSashInBackgroundColour = False

        # Bind event handlers
        self.Bind(wx.EVT_PAINT,        self._OnPaint)
        self.Bind(wx.EVT_IDLE,         self._OnIdle)
        self.Bind(wx.EVT_SIZE,         self._OnSize)
        self.Bind(wx.EVT_MOUSE_EVENTS, self._OnMouse)

        # Novas variaveis
        #self._old_size = (0,0)
        self._sash_size = self._border_size = 1
        self.borderColor = (0,0,0)
        self.sashColor = (0,0,0)
        #self.selectedWindowColor = 'green'
        self.trackerCanvas = None
        self.fit = False
        self._ajustes = []
        self._proporcao = []
        self.ajustado = False

        # Tom de azul para sashTrcker
        self.sashTrackerColor = 'blue' #(4, 20, 164)


问题


面经


文章

微信
公众号

扫码关注公众号