1

我正在为控制台应用程序构建布局,就是我想要实现的目标。到目前为止我所拥有的是这个。我的主窗口是从 wxFrame 派生的。我使用 wxSplitterWindow 将窗口拆分为两个窗口:左边的一个 - wxTreeCtrl,右边的一个是 wxPanel。我的问题是如何实现以下目标:一个水平列表(可能是一个网格?),它显示来自数据库的类似记录,但带有滚动,因此只显示 20-30,以及该表下方的简单文本区域(网格?)。

我试图拆分 wxPanel,就像我对 Frame 所做的那样,但它不起作用。当我尝试将面板更改为框架时,它可以工作,但框架是在新窗口中打开的。所以现在我要问要使用哪些元素以及如何定位它们,以便我有一个可滚动的表格、一条水平线,然后是一个简单的文本区域。水平线应位于左侧面板的中间。到目前为止,这是我的右侧面板代码: package RightPanel;

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;
}
4

2 回答 2

1

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

我假设您总是希望框架中有三个独立的窗口?您应该简单地分别创建三个窗口并进行算术以对齐它们。听起来你想要一个wxScrolledWindow在顶部,一个wxPanel在底部。

于 2013-01-26T17:50:07.863 回答
0

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

在这个 BoxSizer 中,创建一个 Panel(您的左侧区域)和另一个 BoxSizer(带有 wxVERTICAL 标志)作为您的右侧区域。(上面的 wxHORIZONTAL 标志将把这两个并排放置)。

在右侧的 BoxSizer 中,创建一个 ScrolledWindow(顶部)和一个 Panel(底部)。右侧 BoxSizer 中的 wxVERTICAL 标志将垂直堆叠这些。

如果您以前从未玩过 Sizer,那么您很难理解它们......这可能会有所帮助: Sizer and Layout

于 2013-12-16T21:28:35.457 回答