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

📄 floatcanvas.py

📁 用wxPython编写GUI程序的样例代码
💻 PY
📖 第 1 页 / 共 5 页
字号:
            Canvas = self.Canvas
            Canvas.InitAll()
            

            DefaultSize = 12           
            Point  = (3, 0)

            ## Add a non-visible rectangle, just to get a Bounding Box
            ## Text objects have a zero-size bounding box, because it changes with zoom
            Canvas.AddRectangle((-10,-10),
                                (20,20),
                                LineWidth = 1,
                                LineColor = None)

            # Text
            String = "Some text"
            self.Canvas.AddText("Top Left",Point,Size = DefaultSize,Color = "Yellow",BackgroundColor = "Blue", Position = "tl")
            self.Canvas.AddText("Bottom Left",Point,Size = DefaultSize,Color = "Cyan",BackgroundColor = "Black",Position = "bl")
            self.Canvas.AddText("Top Right",Point,Size = DefaultSize,Color = "Black",BackgroundColor = "Cyan",Position = "tr")
            self.Canvas.AddText("Bottom Right",Point,Size = DefaultSize,Color = "Blue",BackgroundColor = "Yellow",Position = "br")
            Canvas.AddPointSet((Point), Color = "White", Diameter = 2)

            Point  = (3, 2)

            Canvas.AddPointSet((Point), Color = "White", Diameter = 2)
            self.Canvas.AddText("Top Center",Point,Size = DefaultSize,Color = "Black",Position = "tc")
            self.Canvas.AddText("Bottom Center",Point,Size = DefaultSize,Color = "White",Position = "bc")

            Point  = (3, 4)

            Canvas.AddPointSet((Point), Color = "White", Diameter = 2)
            self.Canvas.AddText("Center Right",Point,Size = DefaultSize,Color = "Black",Position = "cr")
            self.Canvas.AddText("Center Left",Point,Size = DefaultSize,Color = "Black",Position = "cl")

            Point  = (3, -2)

            Canvas.AddPointSet((Point), Color = "White", Diameter = 2)
            self.Canvas.AddText("Center Center",
                                Point, Size = DefaultSize,
                                Color = "Black",
                                Position = "cc")

            self.Canvas.AddText("40 Pixels", (-10,8), Size = 40)
            self.Canvas.AddText("20 Pixels", (-10,5), Size = 20)
            self.Canvas.AddText("10 Pixels", (-10,3), Size = 10)

            self.Canvas.AddText("MODERN Font", (-10, 0), Family = wx.MODERN)
            self.Canvas.AddText("DECORATIVE Font", (-10, -1), Family = wx.DECORATIVE)
            self.Canvas.AddText("ROMAN Font", (-10, -2), Family = wx.ROMAN)
            self.Canvas.AddText("SCRIPT Font", (-10, -3), Family = wx.SCRIPT)
            self.Canvas.AddText("ROMAN BOLD Font", (-10, -4), Family = wx.ROMAN, Weight=wx.BOLD)
            self.Canvas.AddText("ROMAN ITALIC BOLD Font", (-10, -5), Family = wx.ROMAN, Weight=wx.BOLD, Style=wx.ITALIC)

            # NOTE: this font exists on my Linux box..who knows were else you'll find it!
            Font = wx.Font(20, wx.DEFAULT, wx.ITALIC, wx.NORMAL, False, "helvetica")
            self.Canvas.AddText("Helvetica Italic", (-10, -6), Font = Font)

            self.Canvas.ZoomToBB()

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

            self.BindAllMouseEvents()
            Canvas = self.Canvas
            Canvas.InitAll()

            Point  = (0, 0)

            T = Canvas.AddScaledText("Top Left",
                                     Point,
                                     Size = 5,
                                     Color = "Yellow",
                                     BackgroundColor = "Blue",
                                     Position = "tl")
            T = Canvas.AddScaledText("Bottom Left",Point,Size = 5,Color = "Cyan",BackgroundColor = "Black",Position = "bl")
            T = Canvas.AddScaledText("Top Right",Point,Size = 5,Color = "Black",BackgroundColor = "Cyan",Position = "tr")
            T = Canvas.AddScaledText("Bottom Right",Point,Size = 5,Color = "Blue",BackgroundColor = "Yellow",Position = "br")
            Canvas.AddPointSet((Point), Color = "Red", Diameter = 4)


            Point  = (0, 20)

            Canvas.AddScaledText("Top Center",Point,Size = 7,Color = "Black",Position = "tc")
            Canvas.AddScaledText("Bottom Center",Point,Size = 7,Color = "White",Position = "bc")
            Canvas.AddPointSet((Point), Color = "White", Diameter = 4)

            Point  = (0, -20)

            Canvas.AddScaledText("Center Right",Point,Size = 9,Color = "Black",Position = "cr")
            Canvas.AddScaledText("Center Left",Point,Size = 9,Color = "Black",Position = "cl")
            Canvas.AddPointSet((Point), Color = "White", Diameter = 4)

            x = -200

            self.Canvas.AddScaledText("MODERN Font", (x, 0), Size = 7, Family = wx.MODERN, Color = (0,0,0))
            self.Canvas.AddScaledText("DECORATIVE Font", (x, -10), Size = 7, Family = wx.DECORATIVE, Color = (0,0,1))
            self.Canvas.AddScaledText("ROMAN Font", (x, -20), Size = 7, Family = wx.ROMAN)
            self.Canvas.AddScaledText("SCRIPT Font", (x, -30), Size = 7, Family = wx.SCRIPT)
            self.Canvas.AddScaledText("ROMAN BOLD Font", (x, -40), Size = 7, Family = wx.ROMAN, Weight=wx.BOLD)
            self.Canvas.AddScaledText("ROMAN ITALIC BOLD Font", (x, -50), Size = 7, Family = wx.ROMAN, Weight=wx.BOLD, Style=wx.ITALIC)
            Canvas.AddPointSet((x,0), Color = "White", Diameter = 4)


            # NOTE: this font exists on my OS-X.who knows were else you'll find it!
            Point = (-100, 50)
            Font = wx.Font(12, wx.DEFAULT, wx.ITALIC, wx.NORMAL, False, "helvetica")
            T = self.Canvas.AddScaledText("Helvetica Italic", Point, Size = 20, Font = Font, Position = 'bc')

            Point = (-50, -50)
            Font = wx.Font(12, wx.DEFAULT, wx.ITALIC, wx.NORMAL, False, "times")
            T = self.Canvas.AddScaledText("Times Font", Point, Size = 8, Font = Font)

            self.Canvas.ZoomToBB()

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

            self.UnBindAllMouseEvents()
            Canvas = self.Canvas
            Canvas.InitAll()

            Point = (45,40)
            Box = Canvas.AddScaledTextBox("A Two Line\nString",
                                          Point,
                                          2,
                                          Color = "Black",
                                          BackgroundColor = None,
                                          LineColor = "Red",
                                          LineStyle = "Solid",
                                          LineWidth = 1,
                                          Width = None,
                                          PadSize = 5,
                                          Family = wx.ROMAN,
                                          Style = wx.NORMAL,
                                          Weight = wx.NORMAL,
                                          Underlined = False,
                                          Position = 'br',
                                          Alignment = "left",
                                          InForeground = False)

            # All defaults
            Box = Canvas.AddScaledTextBox("A Two Line\nString",
                                          Point,
                                          2)

            Box = Canvas.AddScaledTextBox("A Two Line\nString",
                                          Point,
                                          2,
                                          BackgroundColor = "Yellow",
                                          LineColor = "Red",
                                          LineStyle = "Solid",
                                          PadSize = 5,
                                          Family = wx.TELETYPE,
                                          Position = 'bl')

            Box = Canvas.AddScaledTextBox("A String\nThis box is clickable",
                                          Point,
                                          2,
                                          BackgroundColor = "Yellow",
                                          LineColor = "Red",
                                          LineStyle = "Solid",
                                          PadSize = 5,
                                          Family = wx.TELETYPE,
                                          Position = 'tr')

            Box.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.binding2)

            Canvas.AddPoint(Point, Diameter = 4)

            Point = (45,15)
            Box = Canvas.AddScaledTextBox("A Two Line\nString",
                                          Point,
                                          2,
                                          Color = "Black",
                                          BackgroundColor = 'Red',
                                          LineColor = "Blue",
                                          LineStyle = "LongDash",
                                          LineWidth = 2,
                                          Width = None,
                                          PadSize = 5,
                                          Family = wx.TELETYPE,
                                          Style = wx.NORMAL,
                                          Weight = wx.NORMAL,
                                          Underlined = False,
                                          Position = 'cr',
                                          Alignment = "left",
                                          InForeground = False)

            Box = Canvas.AddScaledTextBox("A Two Line\nString",
                                          Point,
                                          1.5,
                                          Color = "Black",
                                          BackgroundColor = 'Red',
                                          LineColor = "Blue",
                                          LineStyle = "LongDash",
                                          LineWidth = 2,
                                          Width = None,
                                          PadSize = 5,
                                          Family = wx.TELETYPE,
                                          Style = wx.NORMAL,
                                          Weight = wx.NORMAL,
                                          Underlined = False,
                                          Position = 'cl',
                                          Alignment = "left",
                                          InForeground = False)

            Canvas.AddPoint(Point, Diameter = 4)

            Point = (45,-10)
            Box = Canvas.AddScaledTextBox("A Two Line\nString",
                                          Point,
                                          2,
                                          Color = "Black",
                                          BackgroundColor = 'Red',
                                          LineColor = "Blue",
                                          LineStyle = "LongDash",
                                          LineWidth = 2,
                                          Width = None,
                                          PadSize = 3,
                                          Family = wx.TELETYPE,
                                          Style = wx.NORMAL,
                                          Weight = wx.NORMAL,
                                          Underlined = False,
                                          Position = 'tc',
                                          Alignment = "left",
                                          InForeground = False)

            Box = Canvas.AddScaledTextBox("A three\nLine\nString",
                                          Point,
                                          1.5,
                                          Color = "Black",
                                          BackgroundColor = 'Red',
                                          LineColor = "Blue",
                                          LineStyle = "LongDash",
                                          LineWidth = 2,
                                          Width = None,
                                          PadSize = 0.5,
                                          Family = wx.TELETYPE,
                                          Style = wx.NORMAL,
                                          Weight = wx.NORMAL,
                                          Underlined = False,
                                          Position = 'bc',
                                          Alignment = "left",
                                          InForeground = False)


            Canvas.AddPoint(Point, Diameter = 4)

            Box = Canvas.AddScaledTextBox("Some Auto Wrapped Text. There is enough to do.",
                                          (80,40),
                                          2,
                                          BackgroundColor = 'White',
                                          LineWidth = 2,
                                          Width = 20,
                                          PadSize = 0.5,
                                          Family = wx.TELETYPE,
                                          )

            Box = Canvas.AddScaledTextBox("Some more auto wrapped text. Wrapped to a different width.\n\nThis is another paragraph.",
                                          (80,20),
                                          2,
                                          BackgroundColor = 'White',
                                          LineWidth = 2,
                                          Width = 40,
                                          PadSize = 0.5,
                                          Family = wx.ROMAN,
                                          Alignment = "right"
                                          )
            Point = N.array((100, -20), N.float_)
            Box = Canvas.AddScaledTextBox("Here is even more auto wrapped text. This time the line spacing is set to 0.8. \n\nThe Padding is set to 0.",
                                          Point,
                                          Size = 3,
                                          BackgroundColor = 'White',
                                          LineWidth = 1,
                                          Width = 40,
                                          PadSize = 0.0,
                                          Family = wx.ROMAN,
                                          Position = "cc",
                                          LineSpacing = 0.8
                                          )
            Canvas.AddPoint(Point, "Red", 2)

            Point = N.array((0, -40), N.float_)
    #        Point = N.array((0, 0), N.float_)
            for Position in ["tl", "bl", "tr", "br"]:
    #        for Position in ["br"]:
                Box = Canvas.AddScaledTextBox("Here is a\nfour liner\nanother line\nPosition=%s"%Position,
                                          Point,
                                          Size = 4,
                                          Color = "Red",
                                          BackgroundColor = None,#'LightBlue',

⌨️ 快捷键说明

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