我正在为控制台应用程序构建布局,这就是我想要实现的目标。到目前为止,我所拥有的是这个。我的主窗口是从wxFrame派生的。我使用 wxSplitterWindow 将窗口拆分为两个窗口:左侧的窗口 - wxTreeCtrl,右侧的窗口是 wxPanel。我的问题是如何实现以下目标:一个水平列表(也许是一个网格?),它像数据库中的记录一样显示,但有一个滚动,以便只显示 20-30 个,以及这个表下面的一个简单的文本区域(网格?
我试图拆分wxPanel,就像我对框架所做的那样,但它不起作用。当我尝试将面板更改为框架时,它起作用了,但是框架在新窗口中打开。所以现在我问使用什么元素以及如何定位它们,以便我有一个可滚动的表格,一条水平线,然后是一个简单的文本区域。水平线应位于左侧面板的中间。到目前为止,这是我右侧面板的代码:包右面板;
use strict;
use base qw(Wx::Panel);
use Wx qw(:everything);
sub new {
my ($class, $parent_window) = @_;
my ($self) = $class->SUPER::new($parent_window);
return $self;
}
wxSplitterWindow
适用于可在运行时拆分和取消拆分的窗口。文本编辑器通常具有这种功能,因此它们可以提供同一文档的两个独立视图。
我假设你总是想要在你的框架中有三个独立的窗口?您应该简单地分别创建三个窗口,然后进行算术以对齐它们。听起来你想要一个wxScrolledWindow
在顶部,一个wxPanel
在底部。
为窗口创建一个带有 wxHORIZONTAL 标志的 BoxSizer。
在此BoxSizer中,创建一个面板(左侧区域)和另一个BoxSizer - 带有wxVERTICAL标志 - 作为右侧区域。(上面的 wxHORIZONTAL 标志将把这两者并排放置)。
在右侧的 BoxSizer 中,创建一个滚动窗口(顶部)和一个面板(底部)。 右侧BoxSizer中的wxVERTICAL标志将垂直堆叠它们。
如果您以前从未玩过尺寸器,那么您很难理解它们......这可能会有所帮助: 尺寸器和布局