实现抓图的工具2

简介: 这里主要是给出界面,让用户可以选择保存的路径,还有网络地址可选,使用wxPython库编写 #encoding:UTF-8import wximport osimport crawlFirstclass SelectPath(wx.

这里主要是给出界面,让用户可以选择保存的路径,还有网络地址可选,使用wxPython库编写

#encoding:UTF-8
import wx
import os
import crawlFirst

class SelectPath(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,None,-1,u"选择保存路径(作者:董继超 版权所有)",size=(500,300),style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN)
panel=wx.Panel(self,-1)
button1=wx.Button(panel,label=u"开始",pos=(20,220),size=(60,30))
button2=wx.Button(panel,label=u"关闭",pos=(100,220),size=(60,30))
button3=wx.Button(panel,label=u"选择文件夹",pos=(380,77),size=(100,30))

sList=["http://www.2cto.com/meinv/rhmeinv/","http://www.2cto.com/meinv/sexmv"]
wx.StaticText(panel,-1,u"选择一个网址",(20,25))
self.combo= wx.ComboBox(panel,-1,"http://www.2cto.com/meinv/rhmeinv/",(100,22),choices=sList,style=0)

self.input_text = wx.TextCtrl(panel, -1, u"",pos=(20,80), size=(350, 25))
self.Bind(wx.EVT_BUTTON,self.OnStart,button1)
self.Bind(wx.EVT_BUTTON,self.OnCloseMe,button2)
self.Bind(wx.EVT_BUTTON,self.OnSelPath,button3)
self.Bind(wx.EVT_CLOSE,self.OnCloseWindow)

def OnSelPath(self,event):
dialog=wx.DirDialog(None,u"选择图片保存的目录",style=wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON)
if dialog.ShowModal()==wx.ID_OK:
self.input_text.SetValue(dialog.GetPath())

def OnStart(self,event):
sPath=self.input_text.Value.strip(" ")
if sPath =="":
wx.MessageBox(u'请选择保存路径',u'提示',wx.OK|wx.ICON_INFORMATION)
return
elif not os.path.exists(sPath):
wx.MessageBox(u'所选路径不存在',u'提示',wx.OK|wx.ICON_INFORMATION)
return
else:
print self.combo.Value
crawlFirst.GetUrlContent(self.combo.Value,sPath)

def OnCloseMe(self,event):
self.Close(True)

def OnCloseWindow(self,event):
self.Destroy()

if __name__=='__main__':
app=wx.PySimpleApp()
frame=SelectPath(parent=None,id=-1)
frame.Show()
app.MainLoop()
相关文章
|
7月前
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——使用 fastJson 处理 null
本文介绍如何使用 fastJson 处理 null 值。与 Jackson 不同,fastJson 需要通过继承 `WebMvcConfigurationSupport` 类并覆盖 `configureMessageConverters` 方法来配置 null 值的处理方式。例如,可将 String 类型的 null 转为 "",Number 类型的 null 转为 0,避免循环引用等。代码示例展示了具体实现步骤,包括引入相关依赖、设置序列化特性及解决中文乱码问题。
351 0
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
8月前
|
存储 缓存 自然语言处理
浏览量超 10w 的热图,描述 RAG 的主流架构
大模型性能的持续提升,进一步挖掘了 RAG 的潜力,RAG 将检索系统与生成模型相结合,带来诸多优势,如实时更新知识、降低成本等。点击本文,为您梳理 RAG 的基本信息,并介绍提升大模型生成结果的方法,快一起看看吧~
752 114
|
前端开发 JavaScript UED
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
【7月更文挑战第16天】在前后端分离的Web开发中,WebSocket解决了实时数据交换的问题。使用Python的Flask和Flask-SocketIO库,后端创建WebSocket服务,监听并广播消息。前端HTML通过JavaScript连接到服务器,发送并显示接收到的消息。WebSocket适用于实时通知、在线游戏等场景,提升应用的实时性和用户体验。通过实战案例,展示了如何实现这一功能。
513 2
|
Linux
第八章 NFS文件系统:
第八章 NFS文件系统:
228 1
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
弹性计算 运维 Cloud Native
实时数仓Hologres问题之规模记录如何解决
阿里云实时数仓Hologres在2021年底的中国信通院评测中,以8192个节点刷新了分布式分析型数据库性能评测的规模记录。它在报表任务、交互式查询、压力测试及稳定性等多个方面表现出色,并通过了大规模性能评测,成为规模最大的MPP数据仓库产品之一。Hologres利用阿里云的云原生能力实现了秒级服务拉起和弹性伸缩,并通过自动化与智能化运维体系提升了大规模集群的运维效率。
100 0
|
iOS开发
加载中,加载中......使用SwiftUI设计2种Loading动画
加载中,加载中......使用SwiftUI设计2种Loading动画
698 0
|
存储 分布式计算 Java
云计算与大数据实验七 HBase的安装与基本操作
云计算与大数据实验七 HBase的安装与基本操作
961 0
|
SQL 存储 监控
【MySQL技术内幕】8.6-快照备份和复制
【MySQL技术内幕】8.6-快照备份和复制
783 0