首先,我在AGUIFrame类中创建了一个名为DataViewPanel的Panel类,我想使用该Panel类来管理GUI框架的一部分。我在AGUIFrame类中创建了一个名为DataViewPanel的Panel类,我想用这个Panel类来管理GUI框架的一部分。
文件.h
class DataViewPanel : public wxPanel
{
public:
DataViewPanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
};
//DECLARE_EVENT_TABLE()
};
file.cpp
AGUIFrame::AGUIFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame(parent, id, title, pos, size)
{
wxPanel* dataViewPanel = new DataViewPanel(this, -1, wxDefaultPosition, wxDefaultSize);
}
AGUIFrame::DataViewPanel::DataViewPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size)
: wxPanel(parent, id, pos, size)
{
wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL);
topSizer->Add(new wxButton(this, wxID_OK, "OK"),
0, // make horizontally unstretchable
wxALL, // make border all around (implicit top alignment)
10);
topSizer->Add(new wxButton(this, wxID_OK, "Button 1"), 0, wxALL, 10);
topSizer->Add(new wxButton(this, wxID_OK, "Button 2"), 0, wxALL, 10);
}
但是,当我在DataViewPanel中创建了3个按钮,然后编译成只显示一个按钮。
帮助我在Gui Frame中显示3个面板按钮。
你需要将你的sizer与面板关联起来,而不需要将你的sizer与面板关联起来。SetSizer(topSizer)
调用的sizer没有被使用,因此所有的按钮都会在默认位置上相互叠加,而不是被它正确放置。