wxWidgets:如何根据 children sizer 的大小更改 parent sizer 的大小?
wxWidget: How do change the size of the parent Sizer according to the size of the children sizers?
这是一个关于wxBoxSizer的问题。我正在实现一个类似于可折叠窗格的自定义 wxWidget。
问题是:我有一个wxBoxSizer (Sizer1),我添加了另一个wxBoxSizer (Sizer2) 作为它的child。如果我改变了 Sizer2 的大小,如何让 Sizer1 自动或手动更新它的大小?
在 Sizer2 上调用 SetSize() 之后,我尝试在 Sizer1 上调用 Fit() 和 Layout(),但是它不会更改 Sizer1 的大小。
请帮忙,谢谢!
wxBoxSizer1 已经占据了整个面板。因此,除非您更改面板本身的大小,否则 wxBoxSizer1 不会调整大小。您可能想尝试使用其他大小作为您的主要 sizer,例如 wxFlexGridSizer。在这里你有更多选择,精准控制。
wxWidgets 中的布局总是从上到下工作,改变子window 或子尺寸器的大小永远不会改变包含 window 本身的大小。如果您确实希望发生这种情况,请在父级 window 上调用 Fit()
以告诉它应该变得与子级所需的一样大。请注意,在面板上调用它仍然不够,您需要在顶层 wxFrame
或 wxDialog
本身进行调用,除非您在其中有一些可用的 space用于容纳不断增加的面板尺寸。
这是一个关于wxBoxSizer的问题。我正在实现一个类似于可折叠窗格的自定义 wxWidget。
问题是:我有一个wxBoxSizer (Sizer1),我添加了另一个wxBoxSizer (Sizer2) 作为它的child。如果我改变了 Sizer2 的大小,如何让 Sizer1 自动或手动更新它的大小?
在 Sizer2 上调用 SetSize() 之后,我尝试在 Sizer1 上调用 Fit() 和 Layout(),但是它不会更改 Sizer1 的大小。
请帮忙,谢谢!
wxBoxSizer1 已经占据了整个面板。因此,除非您更改面板本身的大小,否则 wxBoxSizer1 不会调整大小。您可能想尝试使用其他大小作为您的主要 sizer,例如 wxFlexGridSizer。在这里你有更多选择,精准控制。
wxWidgets 中的布局总是从上到下工作,改变子window 或子尺寸器的大小永远不会改变包含 window 本身的大小。如果您确实希望发生这种情况,请在父级 window 上调用 Fit()
以告诉它应该变得与子级所需的一样大。请注意,在面板上调用它仍然不够,您需要在顶层 wxFrame
或 wxDialog
本身进行调用,除非您在其中有一些可用的 space用于容纳不断增加的面板尺寸。