gpt4 book ai didi

python - 使 wxPanel 可由用户调整大小

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:40 25 4
gpt4 key购买 nike

我有一个 wxPanel。我怎样才能让用户调整它的大小?使用拖放调整大小栏?

我想知道我需要什么小部件。

谢谢。

最佳答案

您可以使用 wx.SplitterWindow 使框架中的面板可调整大小(即将框架划分为两个可调整大小的子窗口)。

如果您想要的是能够在其他面板的网格上调整面板的大小,那么您可以使用 wx.lib.resizewidget。这提供了一个类似于栏的拖放,但您不能移动小部件的位置,只能调整它的大小。

您在 wxpython docs and demos package 中有两者的示例

这里有一个使用 SplitterWindow 的示例(代码非常冗长,因为它是使用 wxglade 自动生成的。如果您愿意,可以对其进行简化):

import wx  

class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.window_1 = wx.SplitterWindow(self, wx.ID_ANY, style=wx.SP_3D | wx.SP_BORDER)
self.window_1_pane_1 = wx.Panel(self.window_1, wx.ID_ANY)
self.window_1_pane_2 = wx.Panel(self.window_1, wx.ID_ANY)

self.__set_properties()
self.__do_layout()

def __set_properties(self):
self.SetTitle("frame_1")
self.window_1_pane_1.SetBackgroundColour(wx.Colour(255, 255, 0))
self.window_1_pane_2.SetBackgroundColour(wx.Colour(50, 153, 204))

def __do_layout(self):
sizer_1 = wx.BoxSizer(wx.VERTICAL)
self.window_1.SplitVertically(self.window_1_pane_1, self.window_1_pane_2)
sizer_1.Add(self.window_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
self.Layout()

if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, wx.ID_ANY, "")
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()

enter image description here

关于python - 使 wxPanel 可由用户调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com