Perl 如何水平分割wxPanel?

Perl 如何水平分割wxPanel?,perl,layout,wxwidgets,wxperl,Perl,Layout,Wxwidgets,Wxperl,我正在构建一个控制台应用程序的布局以及我想要实现的目标。到目前为止,我所知道的是。 我的主窗口是从wxFrame派生的。我使用wxSplitterWindow将窗口拆分为两个窗口:左侧的一个窗口是wxTreeCtrl,右侧的一个窗口是wxPanel。我的问题是如何实现以下功能:一个水平列表(可能是网格?)显示数据库中类似的记录,但带有一个滚动条,因此仅显示20-30条记录,以及该表下方的一个简单文本区域(网格?) 我试着拆分wxPanel,就像我对框架所做的那样,但它不起作用。当我尝试将面板更改

我正在构建一个控制台应用程序的布局以及我想要实现的目标。到目前为止,我所知道的是。 我的主窗口是从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

一个
wxSplitterWindow
用于运行时可以拆分和取消拆分的窗口。文本编辑器通常具有这类功能,因此它们可以提供同一文档的两个独立视图


我想您总是希望在框架中有三个独立的窗口?您只需分别创建三个窗口,然后执行算术将它们对齐。听起来您希望顶部有一个
wxScrolledWindow
,底部有一个
wxPanel

为窗口创建一个带有wxHORIZONTAL标志的BoxSizer

在这个BoxSizer中,创建一个面板(左侧区域)和另一个BoxSizer(带有wxVERTICAL标志)作为右侧区域。(上面的WX水平标志将把这两个并列放置)

在右侧的BoxSizer中,创建一个滚动窗口(顶部)和一个面板(底部)。右侧BoxSizer中的wxVERTICAL标志将垂直堆叠这些

如果你以前从未玩过,那么尺码器很难让你动脑。。。这可能有助于:

为窗口创建带有WX水平标志的BoxSizer

在这个BoxSizer中,创建一个面板(左侧区域)和另一个BoxSizer(带有wxVERTICAL标志)作为右侧区域。(上面的WX水平标志将把这两个并列放置)

在右侧的BoxSizer中,创建一个滚动窗口(顶部)和一个面板(底部)。右侧BoxSizer中的wxVERTICAL标志将垂直堆叠这些

如果你以前从未玩过,那么尺码器很难让你动脑。。。这可能有助于:

但是我应该把wxscrolledwindoww和wxPanel放在什么控制之下呢?@MilanMilanov:把
wxFrame
的所有三个窗口子窗口都设置为子窗口。你不必用一个窗口来填充它。但是我应该把wxscrolledwindowo和wxPanel放在什么控件中呢?@MilanMilanov:将所有三个窗口都作为
wxFrame
的子窗口。你不必用一个窗口填满它。