带有wxSizer、wxSashWindow的GUI布局
GUI layout with wxSizer, wxSashWindow
我正在尝试创建一个窗口,它在主窗口中被拆分为2、3、4等不同的可调整大小的视图,我想用C::B中的wxWidgets来实现它。事实上,画布本身按要求的数量分割窗口,但它没有在视图的边界上放置任何窗框,因此很难注意到哪个视图从哪里开始,在哪里结束。
我在运行时创建了所有东西,我计划在视图边界周围放置窗扇或面板,并希望在我的情况下工作,但主框架不愿意放置面板,窗扇在正确的位置,并停止处理OnSize事件。如果我在调整大小的过程中添加以下带有sizer和panels的代码,这就是以前工作的代码无法正常工作。
MainFrame *frame = new MainFrame(NULL, wxT("wxWidgets OSG Sample"),
wxDefaultPosition, wxSize(width, height));
wxToolBar* toolbar = new wxToolBar(frame, wxID_ANY,wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL);
//wxSashLayoutWindow* win = new wxSashLayoutWindow(frame, ID_WINDOW_TOP,wxPoint(50,10), wxSize(200, 30),
// wxSW_3D | wxCLIP_CHILDREN);
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
wxPanel* panel = new wxPanel(frame, ID_TBbutton, wxPoint(300,0), wxSize(5,500));
panel->SetWindowStyle(wxDOUBLE_BORDER);
// panel->SetStyle(wx_3D)
wxPanel* panel1 = new wxPanel(frame, ID_TBbutton);
sizer->Add( panel, 0, wxALL, 0 );
frame->SetSizer(sizer);
frame->SetToolBar(toolbar);
请在下面找到带有wxSashLayoutWindow
:的MDI表单的基本示例
bool SashWindowTestApp::OnInit()
{
wxMDIParentFrame* mainFrame = new wxMDIParentFrame(NULL, ID_TEST_FRAME,
wxT("Sash window test"), wxPoint(0, 0), wxSize(500, 400),
wxDEFAULT_FRAME_STYLE);
// top window
wxSashLayoutWindow* topWindow = new wxSashLayoutWindow(mainFrame,
ID_WINDOW_TOP, wxDefaultPosition, wxSize(200, 100),
wxSW_3D);
topWindow->SetDefaultSize(wxSize(1000, 100));
topWindow->SetAlignment(wxLAYOUT_TOP);
topWindow->SetBackgroundColour(*wxGREEN);
topWindow->SetSashVisible(wxSASH_BOTTOM, true);
// bottom window
wxSashLayoutWindow* bottomWindow = new wxSashLayoutWindow(mainFrame,
ID_WINDOW_BOTTOM, wxDefaultPosition, wxSize(200, 200),
wxSW_3D);
bottomWindow->SetDefaultSize(wxSize(1000, 200));
bottomWindow->SetAlignment(wxLAYOUT_BOTTOM);
bottomWindow->SetBackgroundColour(*wxYELLOW);
bottomWindow->SetSashVisible(wxSASH_TOP, true);
wxLayoutAlgorithm layout;
layout.LayoutMDIFrame(mainFrame);
mainFrame->Show(true);
return true;
}
为了有一个完全工作的窗扇,你的框架必须对EVT_SASH_DRAGGED
做出反应
相关文章:
- 如何使用C/C++在MacOSX中获得键盘布局
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- C++GTKMM gui循环依赖关系
- 布局兼容类型的并集
- Qt自定义QPush按钮未显示在布局上
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 调整布局上的 QGraphicsView 小部件的大小
- 如何在带有 gdb GUI 前端的 ARM gdbserver 的 PC 上执行远程 gdb 会话?
- 如何在qt中将对象添加到现有布局中?--已解决
- 将布局映射到内存地址
- 在 Gui Win32 中创建子窗口C++
- 如何防止 std::thread 在 QT 中冻结 GUI?
- 如何存储Qt gui布局并恢复它
- Win32 GUI程序中的布局
- 带有wxSizer、wxSashWindow的GUI布局
- 将应用程序的主窗口 GUI 布局更改为在代码中
- 用户界面-是否存在用于C++的跨平台GUI库(具有依赖于平台的UI和基于脚本的布局)