• 19631阅读
  • 10回复

急!怎么使QGraphicsView的背景图不动(已解决) [复制链接]

上一主题 下一主题
离线marlene
 
只看楼主 倒序阅读 楼主  发表于: 2010-08-04
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
请教大师们个问题:

给QGraphicsView贴了背景图片(大小与view的大小一样),view里放了QGraphicsScene,QGraphicsScene里放一些item,item要求可以增加删除

当item增加多个时滚动条可拖动显示view区域之外的,但这时QGraphicsView的背景图片会重复,就相当于背景片重复填充。怎么样可以让QGraphicsView的背景图不动,拖滚动条时只有item滚动呢?


还有个问题,用QGraphicsView做书签窗口,item做条目,而窗口界面如下所示,怎么限制item最下边的位置,留出放按钮的位置呢,item和滚动条又能关联呢?
  

谢谢!


[ 此帖被marlene在2010-09-09 14:23重新编辑 ]
离线marlene
只看该作者 1楼 发表于: 2010-08-04
就是想使view的背景图不随着item的增加滚动条的拖动重复。

view的背景图是setBackgroundBrush(QImage(":/images/tvbbookmark.png"));设置的。

或者有其它方法可以实现这种效果,请大牛们赐教!
离线marlene
只看该作者 2楼 发表于: 2010-08-04
是我的问题太简单?还是描述的不清楚?请大虾们帮帮忙吧!谢谢啦!
离线xinqingfly

只看该作者 3楼 发表于: 2010-08-04
用个QListWidget就可以实现你的功能了吧,为啥要用QGraphicsView
菜鸟也是鸟
离线marlene
只看该作者 4楼 发表于: 2010-08-04
我是想用scene里多层,里移动选中的效果,就像图上的选中的那个图片可以在item上平移。所以用了QGraphicsView.
离线water_wf

只看该作者 5楼 发表于: 2010-08-04
view设成透明,在parent里面绘制
离线marlene
只看该作者 6楼 发表于: 2010-08-04
楼上你好,感谢你的回复。

只有这种方法吗?因为我现在的view没有parent。
离线sbtree
只看该作者 7楼 发表于: 2010-08-04
引用楼主marlene于2010-08-04 14:48发表的 急!怎么使QGraphicsView的背景图不动 :
请教大师们个问题:
给QGraphicsView贴了背景图片(大小与view的大小一样),view里放了QGraphicsScene,QGraphicsScene里放一些item,item要求可以增加删除。
当item增加多个时滚动条可拖动显示view区域之外的,但这时QGraphicsView的背景图片会重复,就相当于背景片重复填充。怎么样可以让QGraphicsView的背景图不动,拖滚动条时只有item滚动呢?
.......

说实话,确实没有完全理解搂主的描述,你说的重复是指图片平铺的效果吗?背景图不动又是什么意思?图片本身就是静止的,你放在坐标的什么位置上,他就显示在什么位置上。难道你是想让图片始终显示在View的可见视窗的左上角吗?那将意味着背景图动才对,随着滚动条的变化也不断重新定位。

我对设置背景的一般做法是在scene中重载drawBackground函数,这样可以任意画背景图,无论是平铺,缩放,还是居中显示,都很容易实现
如同楼主的意思相左,见谅
windows 7 + VC++2008 + Qt4.5.2
离线marlene
只看该作者 8楼 发表于: 2010-08-04
water_wf 你好,刚才按你说的做了,用一个QWidget装着view,QWidget背景贴图,view透明。可以达到我想要的效果。


sbtree 你好,感谢你这么详细的回复。
我所说的view背景贴图重复其实应该叫做重复填充,呵呵,描述不准确。qtdemo里使用view的例子,只要是背景是图片的,都是那种重复填充也看起来像一张图一样的图片。

不是平铺或者居中的效果。如果我的item的条目增加很多后,而view设置了固定的大小,则用滚动条拖动,就会看到重复填充的图片,前提是你的图片有图案或者渐变这些明显效果。呵呵,不知道讲明白没有。
离线xinqingfly

只看该作者 9楼 发表于: 2010-09-17
楼主如何解决的呢,能否告知解决方法
菜鸟也是鸟
离线wyseume

只看该作者 10楼 发表于: 2012-04-17
楼主,图片重复填充的问题是怎么解决的啊?
快速回复
限100 字节
 
上一个 下一个