0

パネルの背景色をフレーム全体に適用!なぜそれが起こったのだろうか。ここでは、フレームは (300,400) ですが、パネルは (300,180) であるはずです。私は何か間違ったことをしているかもしれません。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import wx

class Panel(wx.Panel):
    def __init__(self, parent, id, pos, size):
        wx.Panel.__init__(self, parent, id, pos, size) 

class Frame(wx.Frame):
    def __init__(self, parent, id, title, pos, size, style):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)
        self.userpanel = Panel(self, -1, (0,0), (300,180))
        self.userpanel.SetBackgroundColour('Gold')


class Application(wx.App):
    def __init__(self):
        wx.App.__init__(self)
        frame = Frame(None, -1, "Internet Login Tool", (-1,-1), (300,400),\
        wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
        frame.Show()
        self.SetTopWindow(frame)

if __name__ == '__main__':
    app = Application()
    app.MainLoop()
4

1 に答える 1

1

パネルをフレームに追加すると、フレームの全領域を占有し、フレームにパネルを追加してから、以下の変更されたコードに示すように、パネルをフレーム パネルに追加します。

import wx

class Panel(wx.Panel):
    def __init__(self, parent, id, pos, size):
        wx.Panel.__init__(self, parent, id, pos, size) 

class Frame(wx.Frame):
    def __init__(self, parent, id, title, pos, size, style):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)
        framePanel = wx.Panel(self)
        self.userpanel = Panel(framePanel, -1, (0,0), (300,180))
        self.userpanel.SetBackgroundColour('Gold')


class Application(wx.App):
    def __init__(self):
        wx.App.__init__(self)
        frame = Frame(None, -1, "Internet Login Tool", (-1,-1), (300,400),\
        wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
        frame.Show()
        self.SetTopWindow(frame)

if __name__ == '__main__':
    app = Application()
    app.MainLoop()
于 2013-06-10T20:15:06.223 に答える