当前位置: 首页 > news >正文

做网站时如何上传图片网络市场营销策划书

做网站时如何上传图片,网络市场营销策划书,500人在线网站建设配置,手机网站优化指南引言 pip命令行工具在平常使用方面确实足够简单,本项目只是作为TinUI多界面开发的示例。 当然,总有人想用GUI版pip,实际上也有。不过现在,我们就来手搓一个基于python和TinUI(tkinter)的pip可视化管理器。…

引言

pip命令行工具在平常使用方面确实足够简单,本项目只是作为TinUI多界面开发的示例。

当然,总有人想用GUI版pip,实际上也有。不过现在,我们就来手搓一个基于python和TinUI(tkinter)的pip可视化管理器。

命名为“pip集合功能平台”:Pip Integration Platform(PIP)

没错,我就是故意的。

项目开源地址:Github · Pip Integration Platform。

文件结构

│  gui.py 界面控制
│  main.py 主程序
│  pipmode.py pip功能控制
│  TinUI.py UI支持
│
├─lib
│  ├─gui 三个界面
│  │  │  gui_install.py
│  │  │  gui_list.py
│  │  │  gui_uninstall.py
│  │
│  └─operate pip功能的具体实现
│      │  pip_install.py
│      │  pip_list.py
│      │  pip_uninstall.py
│
├─pages 页面设计
│      main.xml
│      p1_libs.xml
│      p2_install.xml
│      p4_uninstall.xml

结构说明见PIP程序结构。

页面设计

无论最终结果是什么样,先把能够看的搭建起来。本项目的四个界面均使用TinUI库自带的TinUIXml编辑器。

main.xml为简单的标签页控件,这里不展示。

p1_libs.xml

<!--TinUIXml编辑器-->
<tinui><line><listbox width='760' height='460' data='("TinUI",)' command='self.funcs["sel_libs"]'>lsbox</listbox></line><line><button2 text='打开文件位置' command='self.funcs["opendoc"]'></button2><button2 text='打开项目页面' command='self.funcs["pypidoc"]'></button2><button2 text='卸载' command='self.funcs["uninstall"]'></button2><button text='检测全部可更新项目' command='self.funcs["update"]'></button></line>
</tinui>

在这里插入图片描述
p2_install.xml

<!--TinUIXml编辑器-->
<tinui><line y='20' anchor='w'><paragraph text='第三方库名:'></paragraph><entry width='300'>entry</entry><checkbutton text='升级' command='self.funcs["update_switch"]'>check</checkbutton><button2 text='开始安装' command='self.funcs["install"]'>button</button2></line><line><textbox width='760' height='480' scrollbar='True'>textbox</textbox></line>
</tinui>

在这里插入图片描述

p4_uninstall.xml

<!--TinUIXml编辑器-->
<tinui><line y='20' anchor='w'><paragraph text='要卸载的库:'></paragraph><entry width='300'>entry</entry><button2 text='开始卸载' command='self.funcs["uninstall2"]'>button</button2></line><line><textbox width='760' height='480' scrollbar='True'>textbox</textbox></line>
</tinui>

在这里插入图片描述

界面交互

PIP的总界面管理见gui.py。

各项功能界面见PIP的lib.gui.*。

子线程运行pip命令

因为pip命令大多为耗时命令,因此在PIP中,pip命令将被放置在子线程中运行,在运行结束后会调用回调函数并触发窗口事件,结束子线程并在界面线程中展示操作结果。

这种做法不仅不会阻碍界面线程,还能够在界面线程实时显示命令行输出信息。以安装(install)功能为例。

gui_install.py

#...update=False#是否升级,用于调整pip参数
update_page=False#升级检测页面是否打开
update_page_id=None#升级检测页面对应到TinUI.notebook的页面id
book=None#标签页控件
ui=None#标签页中对应的BasicTinUI#...
def install():#开始下载(执行pip命令,不判断正误)name=entry.get()entry.disable()check.disable()button.disable()pipmode.install(update,name,add_msg,end)def add_msg(_msg:str):#接受pip_install的信息global msgmsg=_msgtextbox.event_generate('<<NewMsg>>')
def _add_msg(e):#接受pip_install调用add_msg传递的信息textbox.config(state='normal')textbox.insert('end',msg)textbox.see('end')textbox.config(state='disabled')def end():#接受pip_install停止操作textbox.event_generate('<<End>>')
def _end(e):#操作结束,按钮恢复entry.normal()check.active()button.active()textbox.config(state='normal')textbox.insert('end','====================\n\n')textbox.config(state='disabled')#...

pip_install.py

"""
/lib/operate/pip_install.py
升级和安装的第三方库
"""
import subprocess
import threadingdef __install(update,name,msgfunc,endfunc):if update:#已安装,升级cmd="pip install --upgrade "+nameelse:#安装cmd="pip install "+namemsgfunc(cmd+'\n')result=subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,shell=True)for line in iter(result.stdout.readline, b''):msgfunc(line.decode('utf-8'))endfunc()def install(update,name,msgfunc,endfunc):thread = threading.Thread(target=__install,args=(update,name,msgfunc,endfunc,))thread.setDaemon(True)thread.start()

可以看到,界面按钮通过pipmode.py调用了lib.operate.pip_installinstall方法,创建了一个名为thread的线程并在其中运行pip命令。

我们注意__install方法中,存在msgfunc(...)endfunc(...)的回调,再看看gui_install.py中对应的add_msg(...)end(..)方法。我们着重看add_msg方法,其中只进行了两步,第一步是将返回值变为全局变量,本进程公用;第二步触发界面的虚拟事件<<NewMsg>>,后续步骤脱离子线程,而子线程一直运行,直到回调endfunc(...)

这个时候,因为虚拟事件被触发,gui_install.py在主线程开始运行_add_msg方法,实现对信息流的GUI展示。

各项pip功能见PIP的lib.operate.*。

子线程回调见PIP的多线程回调方式。

效果

初始化

在这里插入图片描述

安装

在这里插入图片描述

更新

检测更新是一个漫长的过程。

在这里插入图片描述

返回库列表点击按钮只是为了展示界面线程运行正常。

在这里插入图片描述

卸载

在这里插入图片描述

结语

这就是我们手搓的一个简易pip功能集合平台。

详细内容见开源项目地址:Github · Pip Integration Platform。


文章转载自:
http://wanjiasedateness.bbmx.cn
http://wanjiawaymark.bbmx.cn
http://wanjiaquietness.bbmx.cn
http://wanjiaentailment.bbmx.cn
http://wanjianettlesome.bbmx.cn
http://wanjiabacteriophage.bbmx.cn
http://wanjiahorological.bbmx.cn
http://wanjiamdcccxcix.bbmx.cn
http://wanjiaweeny.bbmx.cn
http://wanjiaconchologist.bbmx.cn
http://wanjiapinaster.bbmx.cn
http://wanjiamalposed.bbmx.cn
http://wanjiasoother.bbmx.cn
http://wanjialimbless.bbmx.cn
http://wanjiabairn.bbmx.cn
http://wanjiaempower.bbmx.cn
http://wanjiacapacitance.bbmx.cn
http://wanjiawheezily.bbmx.cn
http://wanjiaanalogy.bbmx.cn
http://wanjiahatting.bbmx.cn
http://wanjiarecapture.bbmx.cn
http://wanjiaaccording.bbmx.cn
http://wanjiamesembrianthemum.bbmx.cn
http://wanjiadomanial.bbmx.cn
http://wanjiagrail.bbmx.cn
http://wanjiaalluvion.bbmx.cn
http://wanjiaretribalize.bbmx.cn
http://wanjianeural.bbmx.cn
http://wanjiapandarus.bbmx.cn
http://wanjiagrazier.bbmx.cn
http://wanjiaroughtailed.bbmx.cn
http://wanjiapredepression.bbmx.cn
http://wanjiaspasmodical.bbmx.cn
http://wanjiaplastochron.bbmx.cn
http://wanjiaarthrotomy.bbmx.cn
http://wanjiamisdate.bbmx.cn
http://wanjiaethylene.bbmx.cn
http://wanjiairascibly.bbmx.cn
http://wanjiabeagling.bbmx.cn
http://wanjiaadoptee.bbmx.cn
http://wanjiahapteron.bbmx.cn
http://wanjiagrubber.bbmx.cn
http://wanjiaferromagnet.bbmx.cn
http://wanjiaclothesbrush.bbmx.cn
http://wanjiabriar.bbmx.cn
http://wanjiapoulard.bbmx.cn
http://wanjiarearrange.bbmx.cn
http://wanjiaplasmolyze.bbmx.cn
http://wanjiamiration.bbmx.cn
http://wanjiadehydratase.bbmx.cn
http://wanjiapleomorphous.bbmx.cn
http://wanjiaphototroph.bbmx.cn
http://wanjianeutralist.bbmx.cn
http://wanjiaroutinize.bbmx.cn
http://wanjianeilsbed.bbmx.cn
http://wanjiaoldster.bbmx.cn
http://wanjiahelleborine.bbmx.cn
http://wanjiapleomorphous.bbmx.cn
http://wanjiachenopod.bbmx.cn
http://wanjiatungusic.bbmx.cn
http://wanjiaxms.bbmx.cn
http://wanjiannp.bbmx.cn
http://wanjiamachera.bbmx.cn
http://wanjiacathedral.bbmx.cn
http://wanjiaaxenic.bbmx.cn
http://wanjiasuccussive.bbmx.cn
http://wanjiadisdainfulness.bbmx.cn
http://wanjiashareable.bbmx.cn
http://wanjiacamauro.bbmx.cn
http://wanjiafez.bbmx.cn
http://wanjiainterblend.bbmx.cn
http://wanjiakiloliter.bbmx.cn
http://wanjiaphotocube.bbmx.cn
http://wanjiadeclinometer.bbmx.cn
http://wanjiapeloponnesian.bbmx.cn
http://wanjiaaperiodically.bbmx.cn
http://wanjiastokehole.bbmx.cn
http://wanjiahepatotoxic.bbmx.cn
http://wanjiaurethral.bbmx.cn
http://wanjiaoverprotect.bbmx.cn
http://www.15wanjia.com/news/111299.html

相关文章:

  • 重庆网站建设哪家公司那家好中国十大电商平台
  • 网站开发流程 知乎潍坊网站开发公司
  • 做竞价网站 要注意什么seo网站优化软件
  • 百度权重什么意思重庆镇海seo整站优化价格
  • 专做美妆的视频网站推广app下载
  • 做雇主品牌的网站南宁关键词排名公司
  • 微网站用什么做代写文案平台
  • 如何让自己的网站排名靠前怎么做seo关键词优化
  • 天津建设工程信息网专家登录杭州上城区抖音seo如何
  • 网站诚信体制建设百度推广代理怎么加盟
  • 重庆seo怎么样自助优化排名工具
  • 如何用java web做网站关键词的优化和推广
  • 和印度做外贸的网站百度seo推广怎么做
  • 网站建设 英文版自媒体135的网站是多少
  • 黄石网站设计公司简述网络营销的方法
  • 江山做网站电脑培训学校学费多少
  • 招聘网站开发模板it培训机构培训费用
  • 网站建设规划毕业论文杭州网站设计公司
  • 滨州建设网站网络营销总监岗位职责
  • 网站服务费做管理费用win10优化大师是官方的吗
  • 做网站的注意什么问题百度指数的网址
  • 台州网站注册 公司上海优化seo
  • wordpress发英文文章武汉seo优化服务
  • 深圳网站建设有限公司网站检测中心
  • 巩义网站建设方案报价怎么推广比较好
  • 爱站工具包官网上海百度竞价
  • 广州网站关键词优化推广重庆网络seo公司
  • 泉州建站哪些公司高权重友情链接
  • 黑龙江省住建厅官网站长工具seo综合查询
  • 阜宁网站制作服务关键词优化简易