• 7097阅读
  • 6回复

[提问]对于布局的一点点疑问 [复制链接]

上一主题 下一主题
离线starfall512
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-14
关键词: QT4求助
我建了一个widget,里面有一个layout(取名为newMainLayout),显示一些内容 。
现在我更新了layout里的数据,希望显示成为更新之后的内容。


我做了一下尝试:
1、
希望清空layout在重新加控件
    while( newMainLayout->count() ) {        newMainLayout->removeItem(newMainLayout->itemAt(0));    }
之后再次加入各种控件,结果是显示的内容重叠了,就是,更新前的内容还在,又加上了更新后的内容。


2、
希望能重新setlayout,不成功
希望能删除layout,不会。。


希望大家帮助。。
离线roywillow

只看该作者 1楼 发表于: 2012-05-14
我觉得你可以把你的需求说得再详细些,比如,什么叫更新了layout里的数据?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线uidab

只看该作者 2楼 发表于: 2012-05-14
回 楼主(starfall512) 的帖子
你可以隐藏不需要的控件,然后让需要的显示出来。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线shiziyang

只看该作者 3楼 发表于: 2012-05-14
可以直接delete那个layout,然后new一个新的设下去
离线starfall512
只看该作者 4楼 发表于: 2012-05-14

在widget里面新建了一个layout,layout里放了若干个QGroupBox控件
现在,layout里的QGroupBox要全部更换掉。



但最终获得的效果是:

3L大哥的方法试了试,现在对layout进行了这样的操作:
if( newMainLayout )
{        
         delete newMainLayout;        
         newMainLayout = NULL;    
}
newMainLayout = new QVBoxLayout;
不太成功。。


2L的方法正在尝试中
离线starfall512
只看该作者 5楼 发表于: 2012-05-14
我用了一种方法成功解决了这个问题:

似乎setwidget可以执行多次。
我每次都将旧的widget setvisible(false),然后删除重新建,然后再scrollArea->setWidget

谢谢1L2L3L
2L3L混合一下就出来了

离线shiziyang

只看该作者 6楼 发表于: 2012-05-14
照你的说法可能是重绘的问题,可以在4楼的操作后试试用次update();
快速回复
限100 字节
 
上一个 下一个