Как сделать холст (прямоугольник) в wxpython?

1

Я пытаюсь сделать прямоугольник типа холста окна, вот изображение, если у вас возникли проблемы с пониманием того, что я имею в виду,

занятый кот http://i43.tinypic.com/23vj77d.jpg

Есть ли способ сделать это в wxpython? (также есть способ настроить его для автоматической настройки ширины окна -20px?, так что радиус вокруг окна и будет соответствовать размеру окна пользователя.

Теги:
wxpython

1 ответ

2
Лучший ответ

EDIT: Я спросил по каналу IRC wxPython, а парень под названием "r4z" придумал следующее редактирование для моего кода, который работал на меня в Windows 7.

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.

EDIT # 2: вы также можете просто установить стиль рамки таким образом и пропустить весь бизнес OnSize:

frame = wx.Frame(None, title="Test", style=wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE)
  • 2
    Он не перерисовывается правильно при изменении размера окна.
  • 2
    Я добавил исправление, полученное через IRC-канал wxPython.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню