没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
上次我爬了n多图片,但是浏览的时候有一个问题。 图片浏览器的浏览一般都是按名称排的,而我对图片的命名是按照数字递增的。比如3总是会排在10后面,也就无法快速地浏览图片了。 所以,出于方便自己查阅图片,也出于学习,决定做一个自己的图片浏览器。 目标:浏览目录,通过滚轮不断显示同一个文件夹下的图片,并自定义排序。 步骤0:要实现图形界面,我使用wxPython。 至于如何安装和简单地使用wxpython,可以到网上检索,一大堆资料。 以下步骤默认你已经知道如何生成一个自己的frame。 步骤1:浏览目录。 这个功能就是类似于打开“我的电脑”,然后不断地进入文件夹和返回。 通过几种尝试,我决定使用l
资源推荐
资源详情
资源评论
使用使用wxpython实现的一个简单图片浏览器实例实现的一个简单图片浏览器实例
上次我爬了n多图片,但是浏览的时候有一个问题。
图片浏览器的浏览一般都是按名称排的,而我对图片的命名是按照数字递增的。比如3总是会排在10后面,也就无法快速地浏
览图片了。
所以,出于方便自己查阅图片,也出于学习,决定做一个自己的图片浏览器。
目标:浏览目录,通过滚轮不断显示同一个文件夹下的图片,并自定义排序。
步骤步骤0::要实现图形界面,我使用wxPython。
至于如何安装和简单地使用wxpython,可以到网上检索,一大堆资料。
以下步骤默认你已经知道如何生成一个自己的frame。
步骤步骤1::浏览目录。
这个功能就是类似于打开“我的电脑”,然后不断地进入文件夹和返回。
通过几种尝试,我决定使用listbox。
我初始化一个app。用一个frame实现目录的功能,其上只有一个listbox;用另一个frame实现图片展示的功能,两个frame通
过app进行信息的传递。
复制代码 代码如下:
for _dir in os.listdir(dir):
#do something
其中像os.path.split()、os.path.splitext()、os.path.isdir()等,都是很常用的一些方法。
显示目录就是一个不断地获取你选择的目录,进入目录,读取其下目录,清空listbox,显示目录,更改工作路径的过程。
显示目录的时候,自定义排序功能就来了。通过对图片名称进行处理,转为数字,排序,然后再重新组装回去,从而达到按数
字递增的效果。
复制代码 代码如下:
self.list.Bind(wx.EVT_LISTBOX_DCLICK, self.OnDClick)
同时通过以上方法为listbox绑定了双击事件。若是双击目录则进入目录,否则显示通过app展示图片。
同时这个frame需要具备两个方法,就是获取上一张或下一张图片,为了后续app的调用。
步骤步骤2::显示图片
这个图片展示一开始感觉挺麻烦的,但是弄懂了之后就很简单了。
我用一个frame展示图片。
frame上面空白,有一个wx.StaticBitmap,之后显示图片的时候只需要往这个staticbitmap写bitmap就可以了。一开始我是不断
地新建staticbitmap,导致了一些可以看到但是那时候不知道为什么的原因。
然后在这个frame上检测鼠标滚轮事件,通过向上或向下滚轮调用app的GetNextImage和GetPreImage方法并将获得的图片显
示出来。
还有图片的大小,我先规定了一个最大值和最小值,将图片约束在一定的范围内。
复制代码 代码如下:
bmp = image.Scale(size[0], size[1]).ConvertToBitmap()
self.bmp.SetSize(size)#bmp是staticbitmap
self.bmp.SetBitmap(bmp)
但是一个小窗口看图片很不爽,于是将图片窗口全屏化。
复制代码 代码如下:
self.ShowFullScreen(True, style=wx.FULLSCREEN_ALL)
全屏化就要考虑怎么退出了。我通过按键发送消息,命令窗口关闭或显示。若显示则关闭(其实只是隐藏),若隐藏则显示。
注意这个事件要绑定到app上面。
复制代码 代码如下:
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
然后图片需要能够放大和缩小。于是我再次通过按键触发。放大或缩小只需要通过改变staticbitmap的最大值并让bmp适应那
资源评论
weixin_38576811
- 粉丝: 6
- 资源: 890
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功