python实例之pyqt5多窗口实现(python+pyqt5编写md5生成器)
类别:脚本大全 浏览量:2194
时间:2022-01-19 00:44:03 python实例之pyqt5多窗口实现
python+pyqt5编写md5生成器本文实例为大家分享了python+pyqt5编写md5生成器的具体代码,供大家参考,具体内容如下
学了一下pyqt5,写一个小程序来实践一下。
下图是程序界面:
下面是代码:
|
import hashlib, os, sys from pyqt5.qtgui import qfont, qicon from pyqt5.qtwidgets import (qfiledialog, qgridlayout, qlineedit, qtextedit,qlabel, qwidget, qtooltip, qpushbutton, qapplication) from pyqt5.qtcore import qcoreapplication #小文件的处理函数 def get_md5_small(file_path): md5 = none if os.path.exists(file_path) and os.path.isfile(file_path): with open ( file_path, 'rb' ) as f: md5_obj = hashlib.md5() md5_obj.update( f.read() ) hash_code = md5_obj.hexdigest() md5 = str (hash_code).lower() return md5 #大文件的处理函数 def get_md5_big(file_path): md5 = none if os.path.exists(file_path) and os.path.isfile(file_path): with open ( file_path, 'rb' ) as f: md5_obj = hashlib.md5() while true: d = f.read( 8096 ) if not d: break md5_obj.update(d) hash_code = md5_obj.hexdigest() md5 = str ( hash_code ).lower() return md5 class mainbody(qwidget): def __init__( self ): super (mainbody, self ).__init__() self .init() def init( self ): #布局 grid = qgridlayout() self .setlayout(grid) grid.setspacing( 10 ) #文件路径 self .m_tedit = qtextedit() self .m_tedit.settooltip( u '可以拖拽文件到这里来' ) grid.addwidget( self .m_tedit, 1 , 0 , 2 , 3 ) #四个按钮 self .m_select_btn = qpushbutton(u '选择文件' ) self .m_select_btn.clicked.connect( self .select_func ) self .m_generate_btn = qpushbutton(u '生成' ) self .m_generate_btn.clicked.connect( self .generate_func ) self .m_clear_btn = qpushbutton(u '清空' ) self .m_clear_btn.clicked.connect( self .clear_func ) self .m_copy_btn = qpushbutton(u '复制' ) self .m_copy_btn.clicked.connect( self .copy_func ) grid.addwidget( self .m_select_btn, 3 , 0 ) grid.addwidget( self .m_generate_btn, 3 , 1 ) grid.addwidget( self .m_clear_btn, 3 , 2 ) grid.addwidget( self .m_copy_btn, 5 , 1 ) #md5的输出区域 self .m_output = qlineedit() grid.addwidget( self .m_output, 4 , 0 , 1 , 3 ) self .setgeometry( 300 , 300 , 300 , 200 ) self .setwindowtitle(u "md5生成器" ) self .setwindowicon(qicon( 'icon.jpg" alt="python实例之pyqt5多窗口实现(python+pyqt5编写md5生成器)" border="0" /> self .show() #选择文件 def select_func( self ): filename, ok = qfiledialog.getopenfilename( self , "open file" , "c:/users/administrator/desktop" ) print (os.path.getsize(filename)) self .m_tedit.settext( filename ) self .m_output.clear() #生成md5按钮 def generate_func( self ): path = self .m_tedit.toplaintext() if path.startswith( 'file:///' ): path = path[ 8 :] if os.path.exists(path) and os.path.isfile(path): #200m以上的当作大文件 if os.path.getsize(path) > = 200 * 1024 * 1204 : md5 = get_md5_big( path ) else : md5 = get_md5_small( path ) self .m_output.settext( md5 ) def clear_func( self ): self .m_tedit.clear() self .m_output.clear() #复制 def copy_func( self ): clipboard = qapplication.clipboard() clipboard.settext( self .m_output.text() ) if __name__ = = "__main__" : app = qapplication(sys.argv) mb = mainbody() sys.exit( app.exec_() ) |
最后用 pyinstaller 打包成 exe 文件
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/u012755940/article/details/78273819
您可能感兴趣
- python内置函数一览表(Python面向对象程序设计构造函数和析构函数用法分析)
- python实现linux服务(Python实现Linux监控的方法)
- python获取txt文件内容(使用python读取.text文件特定行的数据方法)
- 2021-10-07 00:38:09
- python flask部署实例(Python Flask框架扩展操作示例)
- python中函数最少能定义几个参数(Python函数中不定长参数的写法)
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- python函数式编程源码(python仿evething的文件搜索器实例代码)
- python的条件判断和循环(对Python中的条件判断、循环以及循环的终止方法详解)
- 多个图片拼接python实现(python实现两张图片的像素融合)
- python时间类的实现(Python日期时间Time模块实例详解)
- python处理所有异常(Python异常处理知识点总结)
- python爬虫爬取网页信息教程(python爬虫爬取微博评论案例详解)
- python opencv 标记目标(使用Python的OpenCV模块识别滑动验证码的缺口推荐)
- python ssh登录服务器(python利用跳板机ssh远程连接redis的方法)
- python散点图(python scatter散点图用循环分类法加图例)
- 这竟然是捏出来的 20种橡皮泥玩法让你轻松hold住魔娃(这竟然是捏出来的)
- 自制橡皮泥(自制橡皮泥)
- 还在卖 禁药西布曲明网上论斤卖(还在卖禁药西布曲明网上论斤卖)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
热门推荐
- vuejs filter过滤器的使用(Vue过滤器filter实现及应用场景详解)
- python协程使用教程(对Python协程之异步同步的区别详解)
- web服务器配置怎么选才是合适的呢(个人web服务器要用哪种服务器比较好?)
- html5canvas曲线图例子(html5利用canvas实现颜色容差抠图功能)
- SQL Server作业活动监视器
- h5制作支付功能(基于HTML5+tracking.js实现刷脸支付功能)
- 常见的web富文本编辑器有哪些
- mysql怎么查看表的字段(Mysql 获取表的comment 字段操作)
- sql join速度慢(SQL Server 使用join all优化 or 查询速度)
- laravel框架保存数据(Laravel 数据库加密及数据库表前缀配置方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9