• 9521阅读
  • 7回复

[提问]qt的滚动条问题 [复制链接]

上一主题 下一主题
离线ssa8023ddy
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-20
        我现在有一个窗体,需要在里面动态增加label,窗体大小固定,比如是100*100,而每个label大小也固定,40*40,因此我想一行放两个lable,这样的话这个窗体能放四个,但是lable数量大于4时还是只能显示4个。看到说QScrollArea能自动调整大小,超过窗体大小就会增加滚动条,可是我试了下我的不行,好像网上的QScrollArea成功的都是用label装图片或者用的QListWidget,而像我这样的widget里装label无法实现啊。
        求教各位大神有无解决方法,想自定义滚动条来着但是不知道该怎么做。。。
离线roywillow

只看该作者 1楼 发表于: 2012-04-20
印象中是scrollarea中只可以放一个QWidget,当这个QWidget太大的时候,area自动添加滚动条,来上下左右浏览这个QWidget
我想你大概需要在scrollarea中放一个QWidget,然后将所有的QLabel都放在这个QWidget中(当然要给这个QWidget设置好layout,好让他自己知道如何调整大小)
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ssa8023ddy
只看该作者 2楼 发表于: 2012-04-21
回 1楼(roywillow) 的帖子
额。。给这个QWidget设置layout,好让他自己知道如何调整大小具体是指什么哇。。
离线roywillow

只看该作者 3楼 发表于: 2012-04-21
回 2楼(ssa8023ddy) 的帖子
如果这个QWidget没有设置layout,那么这个QWidget不会根据里面的内容来调整自己大小,原来多大它就一直那么大,自然也就不可能让scrollarea调整自己滚动条的出现了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ssa8023ddy
只看该作者 4楼 发表于: 2012-04-21
嗯谢谢!我再去试试
离线wanglikai91

只看该作者 5楼 发表于: 2012-06-16
回 3楼(roywillow) 的帖子
为什么我感觉是layout根据QWidget的大小调整内部控件的大小呢?新手,求指点~~我这样写的:
  QWidget *back = new QWidget();
    back->setGeometry(0, 0, 1000, 1000);
    ui->scrollArea->setWidget(back);
    ui->scrollArea->setWidgetResizable(true);
为什么不能出现滚动条呢?
离线wanglikai91

只看该作者 6楼 发表于: 2012-06-16
回 3楼(roywillow) 的帖子
我new 了一个scrollArea就可以了,
不过这个我还是弄不清楚,求指点:为什么我感觉是layout根据QWidget的大小调整内部控件的大小呢?
离线shiziyang

只看该作者 7楼 发表于: 2012-06-18
回 5楼(wanglikai91) 的帖子
ui->scrollArea->setWidgetResizable(true);这句话不能用,一用就出不了scrollbar了,里面的窗体会自动拉伸到scrollarea同样大小
快速回复
限100 字节
 
上一个 下一个