当前位置: 技术问答>linux和unix
请教:gtk怎么把滚动条和drawingarea联起来?盼望有人指点,只有60分了
来源: 互联网 发布时间:2015-10-09
本文导语: 滚动条滚动让drawingarea里的图像也滚动使用什么函数? 我在滚动条的valuechange事件中得到滚动条的位置,然后怎么刷新drawingarea里的图像?怎么把图像移到滚动条所指的位置? 我的做法是在drawingarea 的expose事件中调用...
滚动条滚动让drawingarea里的图像也滚动使用什么函数?
我在滚动条的valuechange事件中得到滚动条的位置,然后怎么刷新drawingarea里的图像?怎么把图像移到滚动条所指的位置?
我的做法是在drawingarea 的expose事件中调用gtk_draw_drawable(area,pixmap,scrollx,scrolly,event.x,event.y,areawidth,areaheight).
可是我不知道怎么通知area刷新,也不知道为什么总是画不出来。
能指点我一下么?
发呆的鱼,我知道你是高手,教我一下吧。麻烦大家乐!!!
我在滚动条的valuechange事件中得到滚动条的位置,然后怎么刷新drawingarea里的图像?怎么把图像移到滚动条所指的位置?
我的做法是在drawingarea 的expose事件中调用gtk_draw_drawable(area,pixmap,scrollx,scrolly,event.x,event.y,areawidth,areaheight).
可是我不知道怎么通知area刷新,也不知道为什么总是画不出来。
能指点我一下么?
发呆的鱼,我知道你是高手,教我一下吧。麻烦大家乐!!!
|
呵呵,在LINUX下我还没做过界面呢,不过在WINDOWS里有同样的概念,即,你的滚动条对应的是逻辑坐标,控制的就象一块画布,而画图区就象是画布上的一个方框,只能显示其中一块,这个可视区,也有自己的坐标系统,你在这个坐标上画图就必须,将画布的坐标与这个视窗坐标之间进行变换。有两种变换可能会用到,一种是坐标原点之间的映射,这个相对简单,别一个可能还会有缩放,就会有比例变换的问题。
所以你得弄清你视窗的原点对就的是画布的什么坐标了,然后上面的每一个x,y值对都比较做相应的调整。
所以你得弄清你视窗的原点对就的是画布的什么坐标了,然后上面的每一个x,y值对都比较做相应的调整。
|
通知刷新用gdk_window_invalidate_rect(),至于画出来,我认为是你的expose事件处理有问题.不知道对不对.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。