wxSizer 和 wxStaticBitmap 忽略最小大小
wxSizer and wxStaticBitmap ignore minimum size
Wizard::Wizard( wxWindow* parent, const wxString& archive )
: wxWizard(parent, wxID_ANY, _("Wizard"))
{
this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
wxWizardPageSimple* rcModWizPageSelect = new wxWizardPageSimple( this );
m_pages.Add( rcModWizPageSelect );
wxBoxSizer* bSizer1;
bSizer1 = new wxBoxSizer( wxVERTICAL );
m_bitmap2 = new wxStaticBitmap( rcModWizPageSelect, wxID_ANY, wxBitmap( wxT("data/img.jpg"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
m_bitmap2->SetMinSize( wxSize( 586,192 ) );
bSizer1->Add( m_bitmap2, 0, wxALL|wxEXPAND|wxFIXED_MINSIZE, 5 );
wxStaticBoxSizer* sbSizer1;
sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( rcModWizPageSelect, wxID_ANY, _("Select Archive") ), wxVERTICAL );
rcModArchivePicker = new wxFilePickerCtrl( rcModWizPageSelect, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*.zip"), wxDefaultPosition, wxDefaultSize, wxFLP_DEFAULT_STYLE|wxFLP_FILE_MUST_EXIST|wxFLP_OPEN );
sbSizer1->Add( rcModArchivePicker, 0, wxALL|wxEXPAND, 5 );
bSizer1->Add( sbSizer1, 1, wxALL|wxEXPAND, 5 );
rcModWizPageSelect->SetSizer( bSizer1 );
rcModWizPageSelect->Layout();
bSizer1->Fit( rcModWizPageSelect );
wxWizardPageSimple* rcModWizPageProgress = new wxWizardPageSimple( this );
m_pages.Add( rcModWizPageProgress );
wxBoxSizer* bSizer2;
bSizer2 = new wxBoxSizer( wxVERTICAL );
m_bitmap1 = new wxStaticBitmap( rcModWizPageProgress, wxID_ANY, wxBitmap( wxT("data/img.jpg"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
m_bitmap1->SetMinSize( wxSize( 586,192 ) );
bSizer2->Add( m_bitmap1, 0, wxALL|wxEXPAND|wxFIXED_MINSIZE, 5 );
wxStaticBoxSizer* sbSizer2;
sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( rcModWizPageProgress, wxID_ANY, _("Please Wait") ), wxVERTICAL );
rcModInstallProgress = new wxGauge( rcModWizPageProgress, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL|wxGA_SMOOTH );
rcModInstallProgress->SetValue( 0 );
sbSizer2->Add( rcModInstallProgress, 0, wxALL|wxEXPAND, 5 );
bSizer2->Add( sbSizer2, 1, wxALL|wxEXPAND, 5 );
rcModWizPageProgress->SetSizer( bSizer2 );
rcModWizPageProgress->Layout();
bSizer2->Fit( rcModWizPageProgress );
this->Centre( wxBOTH );
for ( unsigned int i = 1; i < m_pages.GetCount(); i++ )
{
m_pages.Item( i )->SetPrev( m_pages.Item( i - 1 ) );
m_pages.Item( i - 1 )->SetNext( m_pages.Item( i ) );
}
}
我尝试有一个漂亮的向导对话框,但最小尺寸被忽略,整体帧比我的图像小得多。图像的大小为 586x192。
预览在wxFormBuilder中看起来不错,但生成的代码看起来完全不同。这里有 2 张图片: https://i.stack.imgur.com/tbOzP.png https://i.stack.imgur.com/B3vVf.png
谁能帮我解决这个问题?
我遇到了同样的问题,并且能够通过在大小器上调用 SetItemMinSize(( 来解决它,如下所示:
sizer->Add(control, 0, 0, 0);
sizer->SetItemMinSize(control, 150, -1);
您可能还想检查您的实际父小部件是否遵循其子级的大小或识别它们。我认为您的小部件本身(图片(具有正确的大小,但它周围的窗口/框架没有正确的大小,因此它显示为"越界"。尝试使窗口应用其子级的大小更改,请在此处查看以供参考:http://docs.wxwidgets.org/trunk/overview_windowsizing.html
和:
http://docs.wxwidgets.org/trunk/classwx_window.html#a2bf38a6cbd1f82fb46f274396f482994 http://docs.wxwidgets.org/trunk/classwx_sizer.html#abad9cedc0cbe9ade2c799da23462d17e
希望有助于问候,
罗恩
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么在浮点中从大到小会引入更多的误差
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 在二维数组中查找最小值和最大值?
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 有没有办法在 c++ 中按更大的 int 和更小的对对 int 和对的集合进行排序?
- 如何在数组中交换最小和最大的位置?
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 从较小的阵列到较大的阵列的元素级转换
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- txt 文件中浮点数的最大和最小值
- 查找最小的下一个更大的元素
- 在最小堆中查找最大元素
- C++不同的最小最大值实现
- 查找数组中指示性较大但数组中值较小的元素
- CUDA - 将 float3 数组的 (x,y,z) 分量的最小值/最大值分开?
- 查找包含 N 个元素的数组的最小值和最大值
- 井字游戏具有奇怪行为的最小最大值算法(C++)
- 错误C++在Visual Studio 2019中使用numeric_limits的长双精度最小值/最大值