如何在wxPHP中重新打开关闭的wxAuiManager窗格?

如何在wxPHP中重新打开关闭的wxAuiManager窗格?,php,wxwidgets,wxphp,Php,Wxwidgets,Wxphp,我正在使用WXaiManager进行实验,使用wxPHP查看窗格元素如何排列在围绕中心固定元素的可固定窗口中。所以我觉得我的方式使用自动完成 默认情况下,“我的窗格”元素有一个关闭图标,单击该图标将成功关闭窗格,但我现在对恢复关闭的窗格感兴趣。这似乎不像人们所期望的那样微不足道 默认情况下,关闭窗口似乎会破坏它,但我相信使用destroonclose()可以防止这种情况。在wxFrame的上下文中,我正在这样做初始化: $this->manager = new wxAuiManager($

我正在使用WXaiManager进行实验,使用wxPHP查看窗格元素如何排列在围绕中心固定元素的可固定窗口中。所以我觉得我的方式使用自动完成

默认情况下,“我的窗格”元素有一个关闭图标,单击该图标将成功关闭窗格,但我现在对恢复关闭的窗格感兴趣。这似乎不像人们所期望的那样微不足道

默认情况下,关闭窗口似乎会破坏它,但我相信使用
destroonclose()
可以防止这种情况。在
wxFrame
的上下文中,我正在这样做初始化:

$this->manager = new wxAuiManager($this, wxAUI_MGR_DEFAULT);

$textCtrl = new wxTextCtrl($this, -1, "Pane");
$paneInfo = new wxAuiPaneInfo();
$info->Top(); // Dock in the top direction
$info->PinButton(); // Give the pane a pin (or "undock") icon
$info->DestroyOnClose(false);
$info->Name('auiPane'); // Make this item individually addressable

$this->manager->AddPane($textCtrl, $paneInfo);
关闭窗格后,要恢复,我将在相同的
wxFrame
上下文中执行此操作:

$info = $this->manager->GetPane('auiPane');
echo "Is shown: " . ($info->IsShown() ? 'yes' : 'no') . "\n";

// These two are probably unnecessary - grasping at straws here!
$info->Top();
$info->TopDockable();

// Show the pane again
$info->Show();
文本输出在关闭后最初指示“否”,然后再次运行此代码生成“是”。因此,
Show()
似乎确实有效果,但它并没有回到wxAuiManager的安排中——我看不出框架内容有什么不同


我错过了什么?我在Ubuntu14.04上运行PHP5.5.9,并编译了
wxwidgets
扩展名。

我找到了答案-非常简单。
wxAuiPaneInfo
方法
Show()
是正确的,但在此之后,经理需要
Update()
来强制立即重新绘制:

// Show all available panes
for($i = 0; $i <= 7; $i++)
{
    $info = $this->manager->GetPane('auiPane' . $i);
    $info->Show();
}

// Redraw the managed window
$this->manager->Update();
//显示所有可用窗格
对于($i=0;$i管理器->获取窗格('auiPane'.$i));
$info->Show();
}
//重新绘制托管窗口
$this->manager->Update();

我想出来了-真的很简单。
wxAuiPaneInfo
方法
Show()
是正确的,但在此之后,经理需要
更新()
来强制立即重新绘制:

// Show all available panes
for($i = 0; $i <= 7; $i++)
{
    $info = $this->manager->GetPane('auiPane' . $i);
    $info->Show();
}

// Redraw the managed window
$this->manager->Update();
//显示所有可用窗格
对于($i=0;$i管理器->获取窗格('auiPane'.$i));
$info->Show();
}
//重新绘制托管窗口
$this->manager->Update();