【发布时间】:2015-10-23 21:57:08
【问题描述】:
我有一个基本的窗口(框架)(实际上是用 FormBuilder 3.5 制作的),有一个垂直的尺寸器,然后是一个水平的尺寸器(如代码所示)。在 H sizer 中,我有一个完整的功能区,其中包含 1 个(页面、面板、按钮栏)和一个按钮。
我正在向功能区页面添加一个面板,然后向面板添加一个按钮。它的大小是如此之小,以至于按钮最终出现在一个带有按钮的下拉框(窗格?)中。应该没有大小限制,它有足够的空间来做一个按钮。
//late creation code
wxRibbonPage *ribbonPage = m_mainFrame->m_mainRibbonPage;//public pointer
if (nullptr != ribbonPage)
{
wxBoxSizer *a = new wxBoxSizer(wxHORIZONTAL);
wxRibbonPanel *panel = new wxRibbonPanel(ribbonPage, wxID_ANY, wxT("button group"), wxNullBitmap, wxDefaultPosition, wxSize(-1, -1), wxRIBBON_PANEL_DEFAULT_STYLE);
panel->SetSizer(a);
panel->SetSize(wxSize(300, -1));//looks same with/without
wxRibbonButtonBar *btnBar = new wxRibbonButtonBar(panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
btnBar->AddToggleButton(wxID_ANY, wxT("play"), wxArtProvider::GetBitmap(wxART_MISSING_IMAGE, wxART_TOOLBAR), wxEmptyString);
}
m_mainFrame->m_ribbonBar2->Realize();
m_mainFrame->m_ribbonBar2->Layout();
m_mainFrame->Bind(wxEVT_MENU, &MyApp::OnSelectCard, this);//these easy
m_mainFrame->Show();
-是否有面板标题似乎没有帮助。
- 调用 wxButtonBar->Realize() 似乎没有帮助。
- 调用 wxRibbonBar->Layout() 似乎没有帮助。
- 将最小面板宽度设置为 300 似乎没有任何影响。
- 创建一个 H box sizer 并使用 newPanel->SetSizer(wxBoxSizer a) nope.
- 设置box sizer后设置面板大小,不行。
作为一个额外的好处,面板宽度使用 sizer 约为 0。
//early object code derived from wxForm
wxBoxSizer* bSizer26;
bSizer26 = new wxBoxSizer( wxHORIZONTAL );
m_ribbonBar2 = new wxRibbonBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxRIBBON_BAR_DEFAULT_STYLE );
m_ribbonBar2->SetArtProvider(new wxRibbonDefaultArtProvider);
m_mainRibbonPage = new wxRibbonPage( m_ribbonBar2, ID_RIBBON_PAGE, wxEmptyString , wxNullBitmap , 0 );
m_ribbonBar2->SetActivePage( m_mainRibbonPage );
m_ribbonPanel2 = new wxRibbonPanel( m_mainRibbonPage, wxID_ANY, wxEmptyString , wxNullBitmap , wxDefaultPosition, wxDefaultSize, wxRIBBON_PANEL_DEFAULT_STYLE );
m_ribbonPanel2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
m_ribbonButtonBar2 = new wxRibbonButtonBar( m_ribbonPanel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
m_ribbonButtonBar2->AddHybridButton( wxID_ANY, wxT("Card Select"), wxArtProvider::GetBitmap( wxART_MISSING_IMAGE, wxART_TOOLBAR ), wxEmptyString);
m_ribbonBar2->Realize();
bSizer26->Add( m_ribbonBar2, 1, wxALL, 0 );
我一直在查看 wxwidgets.org。 我一直在参考样本。 我一直在寻找类似的问题。 如果我(在 cmets 中)链接到有答案的资源,如果没有答案,我会撰写答案。
【问题讨论】:
标签: wxwidgets