如何使用wxbox在一个框架内排列wxWidgets?

2024-04-20 09:38:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用wxSizer在面板中排列小部件。我可以看到小部件被安排好了,但是它们没有进入框架内部。有人能告诉我我做错了什么吗?你知道吗

import wx

class MyRegion(wx.Frame):
    def __init__(self):        
        wx.Frame.__init__(self, None, -1)

        self.panel = wx.Panel(self,-1,pos=(70,200), size=(300,300))
        self.panel.SetBackgroundColour((128,128,128)) # dark grey       

        sizer = wx.BoxSizer(wx.VERTICAL)

        b1 = wx.Button(self, label="TEXT1")
        b2 = wx.Button(self, label="TEXT2")
        b3 = wx.Button(self, label="TEXT3")

        sizer.Add(b1)
        sizer.Add(b2)
        sizer.Add(b3)

        self.panel.SetSizer(sizer)
        sizer.Fit(self.panel)


if __name__ == "__main__":
    app = wx.PySimpleApp()
    myRegion = MyRegion()
    myRegion.Show()
    app.MainLoop()   

Tags: selfaddappinit部件buttonframeb2
1条回答
网友
1楼 · 发布于 2024-04-20 09:38:56

您应该使面板成为按钮的父级,而不是框架。你知道吗

b1 = wx.Button(self.panel, label="TEXT1")

原因是尽管sizer控制项目的位置,但是UI中的父/子关系仍然由wx对象控制,wx对象直接映射到底层OS控件。你知道吗

相关问题 更多 >