⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 floatcanvas.py

📁 用wxPython编写GUI程序的样例代码
💻 PY
📖 第 1 页 / 共 5 页
字号:
                                          LineWidth = 1,
                                          LineColor = "White",
                                          Width = None,
                                          PadSize = 2,
                                          Family = wx.ROMAN,
                                          Position = Position,
                                          LineSpacing = 0.8
                                          )
            Canvas.AddPoint(Point, "Red", 4)

            Point = N.array((-20, 60), N.float_)
            Box = Canvas.AddScaledTextBox("Here is some\ncentered\ntext",
                                          Point,
                                          Size = 4,
                                          Color = "Red",
                                          BackgroundColor = 'LightBlue',
                                          LineWidth = 1,
                                          LineColor = "White",
                                          Width = None,
                                          PadSize = 2,
                                          Family = wx.ROMAN,
                                          Position = "tl",
                                          Alignment = "center",
                                          LineSpacing = 0.8
                                          )

            Point = N.array((-20, 20), N.float_)
            Box = Canvas.AddScaledTextBox("Here is some\nright aligned\ntext",
                                          Point,
                                          Size = 4,
                                          Color = "Red",
                                          BackgroundColor = 'LightBlue',
                                          LineColor = None,
                                          Width = None,
                                          PadSize = 2,
                                          Family = wx.ROMAN,
                                          Position = "tl",
                                          Alignment = "right",
                                          LineSpacing = 0.8
                                          )

            Point = N.array((100, -60), N.float_)
            Box = Canvas.AddScaledTextBox("Here is some auto wrapped text. This time it is centered, rather than right aligned.\n\nThe Padding is set to 2.",
                                          Point,
                                          Size = 3,
                                          BackgroundColor = 'White',
                                          LineWidth = 1,
                                          Width = 40,
                                          PadSize = 2.0,
                                          Family = wx.ROMAN,
                                          Position = "cc",
                                          LineSpacing = 0.8,
                                          Alignment = 'center',
                                          )




            self.Canvas.ZoomToBB()

        def binding2(self, event):
            self.Log("I'm the TextBox")

        def TestBitmap(self, event= None):
            wx.GetApp().Yield(True)

            self.UnBindAllMouseEvents()
            Canvas = self.Canvas
            Canvas.InitAll()
            
            Canvas.AddRectangle((10, 20),
                                (400, 100),
                                LineWidth = 3,
                                LineColor = "Blue",
                                FillColor = "Red")

            bmp = Resources.getMagPlusBitmap()

            Canvas.AddText("These are Unscaled Bitmaps:", (140, 90))
          
            Point = (150, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "cc" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (200, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "br" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (200, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "bl" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (200, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "tr" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (200, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "tl" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (250, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "cr" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (250, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "cl" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (300, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "tc" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (300, 50)
            BitMap = Canvas.AddBitmap(bmp, Point, Position = "bc" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Canvas.AddScaledText("These are Scaled Bitmaps:", (220, -60), Size = 10, Position = "tr")
            Point = (250, -100)
            BitMap = Canvas.AddScaledBitmap(bmp, Point, Height = 50, Position = "bc" )
            BitMap = Canvas.AddScaledBitmap(bmp, Point, Height = 50, Position = "tc" )
            Canvas.AddPoint(Point, Diameter=4, Color="Green")

            Point = (300, -100)
            BitMap = Canvas.AddScaledBitmap(Resources.getMondrianImage(), Point, Height = 50)

            self.Canvas.ZoomToBB()

        def DrawMap(self,event = None):
            wx.GetApp().Yield(True)
            import os, time
            
            self.Canvas.InitAll()
            self.Canvas.SetProjectionFun("FlatEarth")
            self.BindAllMouseEvents()

        ## Test of Actual Map Data
            #start = time.clock()
            self.Log("Loading Map from a File")
            wx.GetApp().Yield(True) # so log text will get displayed now.
            Shorelines = self.Read_MapGen(os.path.join("data",'world.dat'),stats = 0)
            #print "It took %f seconds to load %i shorelines"%(time.clock() - start,len(Shorelines) )
            #start = time.clock()
            for segment in Shorelines:
                self.Canvas.AddLine(segment)
            #print "It took %f seconds to add %i shorelines"%(time.clock() - start,len(Shorelines) )
            #start = time.clock()
            self.Canvas.ZoomToBB()
            #print "It took %f seconds to draw %i shorelines"%(time.clock() - start,len(Shorelines) )



        def LineTest(self,event = None):
            wx.GetApp().Yield(True)
            import os, time
#            import random
            colors = self.colors
            Range = (-10,10)
        ## Test of drawing lots of lines
            Canvas = self.Canvas
            Canvas.InitAll()
                        #start = time.clock()
            linepoints = []
            linecolors = []
            linewidths = []
            for i in range(2000):
                points = (random.randint(Range[0],Range[1]),
                         random.randint(Range[0],Range[1]),
                         random.randint(Range[0],Range[1]),
                         random.randint(Range[0],Range[1]))
                linepoints.append(points)
                linewidths.append(random.randint(1,10) )
                linecolors.append(random.randint(0,len(colors)-1) )
            for (points,color,width) in zip(linepoints,linecolors,linewidths):
                Canvas.AddLine((points[0:2],points[2:4]), LineWidth = width, LineColor = colors[color])
            #print "It took %f seconds to add %i lines"%(time.clock() - start,len(linepoints) )
            #start = time.clock()
            Canvas.ZoomToBB()
            #print "It took %f seconds to draw %i lines"%(time.clock() - start,len(linepoints) )

        def ArrowLineTest(self,event = None):
            wx.GetApp().Yield(True)
            Canvas = self.Canvas
            Canvas.InitAll()
            #            import os, time
##            import random
            Range = (-100,100)
            colors = self.colors

            # Lines
            for i in range(5):
                points = []
                for j in range(random.randint(2,10)):
                    point = (random.randint(Range[0],Range[1]),random.randint(Range[0],Range[1]))
                    points.append(point)
                lw = random.randint(1,4)
                cf = random.randint(0,len(colors)-1)
                cl = random.randint(0,len(colors)-1)
                al = random.randint(8,20)
                aa = random.randint(20,90)
                Canvas.AddArrowLine(points,
                                    LineWidth = lw,
                                    LineColor = colors[cl],
                                    ArrowHeadSize = al,
                                    ArrowHeadAngle = aa)

            Canvas.ZoomToBB()

        def SpeedTest(self,event=None):
            wx.GetApp().Yield(True)
            BigRange = (-1000,1000)
            colors = self.colors

            self.UnBindAllMouseEvents()
            Canvas = self.Canvas

            Canvas.InitAll()
            
            # Pointset
            coords = []
            for i in range(1000):
                Point = (random.uniform(BigRange[0],BigRange[1]),random.uniform(BigRange[0],BigRange[1]))
                coords.append( (Point) )
            print "Drawing the Points"
            start = time.clock()
            for Point in coords:
                Canvas.AddPoint(Point, Diameter = 4)
            print "It took %s seconds to add the points"%(time.clock() - start)
            Canvas.ZoomToBB()

        def PropertiesChangeTest(self,event=None):
            wx.GetApp().Yield(True)

            Range = (-10,10)
            colors = self.colors

            self.UnBindAllMouseEvents()
            Canvas = self.Canvas

            Canvas.InitAll()
            
            self.ColorObjectsAll = []
            self.ColorObjectsLine = []
            self.ColorObjectsColor = []
            self.ColorObjectsText = []
            ##One of each object:
            # Rectangle
            Point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
            lw = random.randint(1,5)
            cf = random.randint(0,len(colors)-1)
            wh = ( random.randint(1,5), random.randint(1,5) )
            self.Rectangle = Canvas.AddRectangle(Point, wh, LineWidth = lw, FillColor = colors[cf])
            self.ColorObjectsAll.append(self.Rectangle)

            # Ellipse
            Point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
            lw = random.randint(1,5)
            cf = random.randint(0,len(colors)-1)
            wh = ( random.randint(1,5), random.randint(1,5) )
            self.Ellipse = Canvas.AddEllipse(Point, wh, LineWidth = lw, FillColor = colors[cf])
            self.ColorObjectsAll.append(self.Ellipse)

            # Point 
            xy = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
            D = random.randint(1,50)
            lw = random.randint(1,5)
            cf = random.randint(0,len(colors)-1)
            cl = random.randint(0,len(colors)-1)
            self.ColorObjectsColor.append(Canvas.AddPoint(xy, colors[cf], D))

            # Circle
            Point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
            D = random.randint(1,5)
            lw = random.randint(1,5)
            cf = random.randint(0,len(colors)-1)
            cl = random.randint(0,len(colors)-1)
            self.Circle = Canvas.AddCircle(Point, D, LineWidth = lw, LineColor = colors[cl], FillColor = colors[cf])
            self.ColorObjectsAll.append(self.Circle)

            # Line
            points = []
            for j in range(random.randint(2,10)):
                point = (random.randint(Range[0],Range[1]),random.randint(Range[0],Range[1]))
                points.append(point)
            lw = random.randint(1,10)
            cf = random.randint(0,len(colors)-1)
            cl = random.randint(0,len(colors)-1)
            self.ColorObjectsLine.append(Canvas.AddLine(points, LineWidth = lw, LineColor = colors[cl]))

            # Polygon
##            points = []
##           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -