首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在wxpython中制作画布(矩形)?

如何在wxpython中制作画布(矩形)?
EN

Stack Overflow用户
提问于 2011-11-04 03:51:30
回答 1查看 1.3K关注 0票数 1

我正在尝试制作一个窗口画布类型的矩形,这是一个图像,如果你有问题,理解我的意思,

有没有办法在wxpython中做到这一点?(还有,有没有办法将其设置为自动调整为窗口宽度-20px?),因此窗口周围的半径,并将调整为用户的窗口大小。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-04 04:30:21

编辑:我在Windows频道上询问,一个叫"r4z“的家伙想出了以下对我在Windows7上工作的代码的编辑。

代码语言:javascript
运行
复制
import wx

########################################################################
class MyPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)
        self.Bind(wx.EVT_PAINT, self.OnPaint)

    #----------------------------------------------------------------------
    def OnPaint(self, event):
        """"""
        pdc = wx.PaintDC(self)
        try:
            dc = wx.GCDC(pdc)
        except:
            dc = pdc

        w, h = self.GetSizeTuple()
        w = w - 10
        h = h - 10

        dc.Clear()
        dc.DrawRectangle(x=5, y=5, width=w, height=h)


#----------------------------------------------------------------------
def OnSize(event):
    event.EventObject.Refresh()
    event.Skip()


if __name__ == "__main__":
    app = wx.App(False)
    frame = wx.Frame(None, title="Test")
    panel = MyPanel(frame)
    frame.Bind(wx.EVT_SIZE, OnSize)
    frame.Show()
    app.MainLoop()

或者,您可以查看wx.StaticBox小部件。

编辑#2:你也可以像这样设置框架的样式,跳过整个OnSize业务:

代码语言:javascript
运行
复制
frame = wx.Frame(None, title="Test", style=wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8000987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档