C++ 如何使布局与之匹配';什么内容?

C++ 如何使布局与之匹配';什么内容?,c++,qt,autoresize,qlayout,C++,Qt,Autoresize,Qlayout,所以我有一个QVBoxLayout和两个子布局。 第一个包含标签,第二个包含glwidget。 目标是使第一个布局具有显示标签所需的精确大小,而不是更大,也不是更小(小部件与顶部对齐)。(因此它实际上占据了屏幕的一小部分)。我需要它独立于窗口大小。我试过一些东西,现在我只是用addStrech来让它至少过得去。 所以我想知道。我能通过布局管理实现我想要的吗 QVBoxLayout *v_layout = new QVBoxLayout (this); QHBoxLayout *labe

所以我有一个QVBoxLayout和两个子布局。 第一个包含标签,第二个包含glwidget。 目标是使第一个布局具有显示标签所需的精确大小,而不是更大,也不是更小(小部件与顶部对齐)。(因此它实际上占据了屏幕的一小部分)。我需要它独立于窗口大小。我试过一些东西,现在我只是用addStrech来让它至少过得去。 所以我想知道。我能通过布局管理实现我想要的吗

  QVBoxLayout *v_layout = new QVBoxLayout (this);

  QHBoxLayout *labels_layout = new QHBoxLayout (this);
  QVBoxLayout *labels_layout1 = new QVBoxLayout (this);
  QVBoxLayout *labels_layout2 = new QVBoxLayout (this);

  QVBoxLayout *drawer_layout = new QVBoxLayout (this);

  number_of_points_label = new QLabel (this);
  set_n_label ();

  function_name_label = new QLabel (this);
  set_func_label ();

  state_label = new QLabel (this);
  set_state_label ();

  fabs_max_label = new QLabel (this);
  change_fabs_max_label ();

  drawer_layout->addWidget (drawer);

  labels_layout->setAlignment (Qt::AlignTop);
  labels_layout1->addWidget (number_of_points_label);
  labels_layout1->addWidget (function_name_label);
  labels_layout1->addWidget (fabs_max_label);
  labels_layout2->addWidget (state_label);

  labels_layout->addLayout (labels_layout1);
  labels_layout->addLayout (labels_layout2);

  v_layout->addLayout (labels_layout);
  v_layout->addLayout (drawer_layout);


  v_layout->setStretchFactor (labels_layout, 1);
  v_layout->setStretchFactor (drawer_layout, 8);

您可能需要显示一个图表和最少的代码才能获得帮助。只是一个猜测,而不是添加拉伸。请在添加glwidget时尝试设置。添加了所需的代码。我的意思是说,当然是这样的吗?;-)请尝试
v\u布局->setStretchFactor(标签\u布局,0)
v_布局->设置拉伸系数(抽屉布局,1)
(或者只需使用
addLayout()
的第二个参数即可)。这告诉布局为
抽屉布局
提供所有剩余空间,而
标签布局
必须消耗尽可能多的空间。