Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我的wxWidgets基于框架的应用程序是否需要顶级sizer?_C++_User Interface_Wxwidgets - Fatal编程技术网

C++ 我的wxWidgets基于框架的应用程序是否需要顶级sizer?

C++ 我的wxWidgets基于框架的应用程序是否需要顶级sizer?,c++,user-interface,wxwidgets,C++,User Interface,Wxwidgets,我正在学习一些关于wxWidgets的教程,发现我必须在我的主框架中添加一个wxPanel,以获得类似Windows本机的背景,而不是默认的难看的深灰色 现在,声明一个wxBoxSizer是应该添加到主框架的第一个控件。然后是wxPanel,然后是另一个尺寸器,我将在其中放置控件(文本、按钮等) 我不明白第一个尺码的必要性。对我来说,使用以下层次结构更有意义:框架->面板->大小调整器->控件 所以,我真的需要在面板之前在我的框架中添加一个顶级尺寸器吗? 注意:wxPanel的唯一用途是为我的窗

我正在学习一些关于wxWidgets的教程,发现我必须在我的主框架中添加一个
wxPanel
,以获得类似Windows本机的背景,而不是默认的难看的深灰色

现在,声明一个
wxBoxSizer
是应该添加到主框架的第一个控件。然后是
wxPanel
,然后是另一个尺寸器,我将在其中放置控件(文本、按钮等)

我不明白第一个尺码的必要性。对我来说,使用以下层次结构更有意义:框架->面板->大小调整器->控件

所以,我真的需要在面板之前在我的框架中添加一个顶级尺寸器吗?

注意:
wxPanel
的唯一用途是为我的窗口提供浅灰色背景


编辑事实上,如果面板是框架的第一个也是唯一的子控件,我只能得到我想要的(整个窗口的浅背景色)。

不,您不需要为面板设置大小调整器,因为
wxFrame
会自动调整其唯一子控件的大小,以填充整个客户端区域,因为这是一种常见情况

wxPanel
的目的不仅是为您提供“正确”的背景,还可以在控件之间提供正确的键盘导航。它与
wxFrame
分离的原因是,某些帧不包含控件,但用作画布,在这种情况下,面板将是不必要的


最后,请不要混淆:大小调整器不是控件,它们与窗口关联,并且反过来包含(一些)窗口子项,但它们本身不是控件。

谢谢,非常清楚。顺便说一句,你知道为什么我提到的教程会让用户先添加一个测码器吗?不,对不起,我以前从未看过这个教程。请注意,由于它是一个wiki,您现在应该能够自己更正/简化它。