• 7263阅读
  • 7回复

[提问]Qt如何自定义滚动区域QAbstrctScollArea,怎样重写QAbstrctScollArea只用垂直滚动条 [复制链接]

上一主题 下一主题
离线youny
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-02

各位大侠,本人要实现在一个220*220的区域里 放入多张40*80的图片,区域里放的图片是paintEvent中paint上去的,不是直接加的。图片之间留有空隙。那么只能放两排,每一排5张但是我又想要放一张时就超出区域大小了。所以产生一个垂直滚动区。我感觉要重写QAbstrctScollArea想问一下,如何重写? 给点指示,谢谢!
离线youny
只看该作者 1楼 发表于: 2013-03-02
回 楼主(youny) 的帖子
这是在场景中绘制图元的
离线roywillow

只看该作者 2楼 发表于: 2013-03-02
我觉得你可以往里添加QLabel来显示图片,而不是自己绘制,这样就可以用layout来进行布局了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线youny
只看该作者 3楼 发表于: 2013-03-03
回 2楼(roywillow) 的帖子
谢谢,主要这个只是程序一部分,都是在paint里面完成的,QLabel在paintEvent好像加不进去,如果QLabel能用的话,直接用QScrollArea。在QgraphicsItem QGraphicsView 的框架里绘制图元可以用addwidget(),但是整个程序不用部件的所以这一块也只能重绘了。
离线roywillow

只看该作者 4楼 发表于: 2013-03-03
回 3楼(youny) 的帖子
那就只有自己去计算画面的大小、自己去控制滚动条的显示(我记得有这个函数或者属性的)、自己去控制滚动条的一切(滚动条可以获得指针然后进行控制的)
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线youny
只看该作者 5楼 发表于: 2013-03-03
回 4楼(roywillow) 的帖子
谢谢,我自己换了一种形式实现了,自己弄了两个按钮也是drawRect 出来的,之后直接,list存放图片号,8个一组,用按钮来控制显示哪一组。效果还可以。唯一缺点就是没有slider好看。效果一样。
离线pxiao_xiao

只看该作者 6楼 发表于: 2013-03-04
slider有个信号是valueChanged()  每个图形大小是知道的 算一下就 可以
离线youny
只看该作者 7楼 发表于: 2013-03-04
回 6楼(pxiao_xiao) 的帖子
谢谢各位,已解决
快速回复
限100 字节
 
上一个 下一个