• 3604阅读
  • 2回复

[提问]横向排列带有滚动条的效果怎么做 [复制链接]

上一主题 下一主题
离线hitler++
 

只看楼主 倒序阅读 楼主  发表于: 2013-03-01
有一大堆qwidget ,横向排列,如果超出了父widget的宽度就自动换行,在下一列继续放,如果widget特别多,有很多行,就出现滚动条

html css 的话就这样写的
<style>
.box{
width:800px;
height:600px;
overflow-y: auto;
}
.item{
float:left;
width:200px;
height:200px;
}
</style>
<div class='box'>
    <div class='item'></div>
    <div class='item'></div>
   ...........
</div>

用qt应该怎么弄,也就是说和qformlayout 布局方式差不多,但是不需要自动调节大小,并且带有滚动条
离线kimtaikee

只看该作者 1楼 发表于: 2013-03-01
  1. #include "flowlayout.h"
  2. #include <QScrollArea>
  3. YourMainWidget::YourMainWidget(QWidget* parent):QWidget(parent)
  4. {
  5.       QVBoxLayout* mainLayout = new QVBoxLayout;
  6.       QScrollArea* scrollArea = new QScrollArea(this);
  7.        scrollArea->setWidgetResizable(true);
  8.        mainLayout->addWidget(scrollArea);
  9.        setLayout(mainLayout);
  10.       QWidget* mainWidget = new QWidget(this);
  11.       scrollArea->setWidget(mainWidget);
  12.       FlowLayout* flowLayout = new FlowLayout(mainWidget);
  13.       const int kWidgetCount = 100;
  14.       for(int i = 0; i < kWidgetCount; ++i)
  15.       {
  16.               YourWidget* pYw = new YourWidget(this);
  17.               flowLayout->addWidget(pYw);
  18.       }
  19.       mainWidget->setLayout(flowLayout);
  20. }

P.S. FlowLayout 在代码秀中可以找到.

离线hitler++

只看该作者 2楼 发表于: 2013-03-02
谢谢,问题解决了
快速回复
限100 字节
 
上一个 下一个