• 4934阅读
  • 0回复

[提问]使用QVBoxLayout和QHBoxLayout布局时出现的Layout空白区域问题 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-29
我是想要用这样的方式进行布局
QVBoxLayout_1

QHBoxLayout_1_1

这里放一个QPushButtonS
QVBoxLayout_1_2
QHBoxLayout_1_2_1
这里放2个QWidgetA、 QWidgetB
QHBoxLayout_1_2_2
这里放2个QWidgetC、 QWidgetD


  1. // 控件QVBoxLayout布局
  2.         QVBoxLayout * mainLayout = new QVBoxLayout();
  3.         mainLayout->setContentsMargins(0,0,0,0);
  4.         mainLayout->setSpacing(0);
  5.                 // 水平盒 : hBox1
  6.                 QHBoxLayout * hBox1 = new QHBoxLayout();
  7.                         hBox1->addWidget(m_PushBtn,0,Qt::AlignCenter);
  8.                 mainLayout->addLayout(hBox1);
  9.                 mainLayout->setAlignment(hBox1,Qt::AlignTop);
  10.                 // 竖直盒 : vBox2
  11.                 QVBoxLayout* vBox2 = new QVBoxLayout();                        
  12.                         // 水平盒 hBox2_1
  13.                         QHBoxLayout * hBox2_1 = new QHBoxLayout();
  14.                         // 显示窗口: m_Widget
  15.                                 hBox2_1->addWidget(m_Widget,0,Qt::AlignCenter|Qt::AlignTop);
  16.                         vBox2->addLayout(hBox2_1);
  17.                         vBox2->setAlignment(hBox2_1,Qt::AlignLeft|Qt::AlignTop);
  18.                 mainLayout->addLayout(vBox2);
  19.                 mainLayout->setAlignment(vBox2,Qt::AlignLeft|Qt::AlignTop);
  20.         this->setLayout(mainLayout);



奇怪的问题出现了:
QHBoxLayout_1_1和QVBoxLayout_1_2总是占据相同的高度,也就是窗口上半部分只有一个QPushButtonS以及大片空白,而下半部分是我的A、B、C、D四个Widget。
问:如何可以使QHBoxLayout_1_1的高度适应QPushButtonS的高度,从而去掉大片空白?





快速回复
限100 字节
 
上一个 下一个