gpt4 book ai didi

c++ - wxWidgets 试图填满整个区域

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:51 25 4
gpt4 key购买 nike

当我尝试使用 wxWidgets 准备 gui 时遇到了问题。我想创建一些按钮来覆盖文本框下方的整个区域。

程序启动时看起来很不错,但是当我想水平调整它的大小时,按钮没有移动。有什么想法吗?

    mainFrame::mainFrame(std::string title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(800, 600))
{
wxBoxSizer* vertSizer = new wxBoxSizer(wxVERTICAL);
vertSizer->Add(
new wxTextCtrl(this, -1, "My text", wxDefaultPosition, wxSize(100,80), wxTE_MULTILINE),
1, // vertically stretchable
wxEXPAND | wxALL, // horizontally stretchable, borders all around
10); // Add text box to parent sizer

wxBoxSizer* horizSizer = new wxBoxSizer(wxHORIZONTAL); // Make child sizer, will contain buttons
wxSizerFlags ButtonFlags(1); // Make controls stretch hoizontally (to cover entire sizer area)
ButtonFlags.Expand().Center().Border(wxALL,10); // Make controls expand vertically, add border
horizSizer->Add(new wxButton(this,123,"OK"), ButtonFlags); // Add first button
horizSizer->Add(new wxButton(this, 124,"Abort"), ButtonFlags); // Add second button
horizSizer->Add(new wxButton(this, 125,"Ignore"), ButtonFlags); // Add third button

vertSizer->Add(horizSizer); // Add child sizer to parent sizer
SetSizerAndFit(vertSizer);

最佳答案

发生这种情况是因为您没有告诉您的主 sizer (vertSizer) 增大 horizSizer 以填充所有可用空间,您需要添加 wxSizerFlags ().Expand() 到最后一行来解决这个问题。

此外,使用 ButtonFlags.Expand().Center() 没有任何意义:您可以展开或居中,但不能同时进行,因此请选择一个。最后,DoubleBorder() 优于 Border(wxALL, 10)

关于c++ - wxWidgets 试图填满整个区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com