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编写程序读写数据库(详解js文件通过python访问数据库方法)
- python教程列表排序(Python一行代码实现快速排序的方法)
- python实用教程(Python简直是万能的,这5大主要用途你一定要知道!推荐)
- 在python中如何删除指定的行(Python删除n行后的其他行方法)
- pythondict排序原理(Python标准库使用OrderedDict类的实例讲解)
- python基本运算符编程(对Python3 * 和 ** 运算符详解)
- python mongodb 基本操作(Python使用pymongo库操作MongoDB数据库的方法实例)
- python3web编程基础教程(python初学者,用python实现基本的学生管理系统python3代码实例)
- python多线程超时设置(解决python线程卡死的问题)
- python列表精讲33节(Python列表知识应知应会)
- python如何使用multiprocess(Python multiprocessing多进程原理与应用示例)
- python批量图像换背景(详解Python给照片换底色蓝底换红底)
- 用python图片转字符串(python实现图片转字符小工具)
- python使用门算法加密文件(python实现栅栏加解密 支持密钥加密)
- python的基本函数及用法(Python3.6.x中内置函数总结及讲解)
- python怎么进行参数传递(在Python中如何传递任意数量的实参的示例代码)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
- 给儿童吃什么最好(给儿童吃什么最好消化)
- 杭州旅游攻略()
- 云南旅游攻略(云南旅游攻略5天攻略)
- 收藏 春节假期,这些景区巨划算(收藏春节假期这些景区巨划算)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
热门推荐
- pythonjpg转pdf格式(Python使用到第三方库PyMuPDF图片与pdf相互转换)
- python字符串之基本操作小练习(Python数据类型之String字符串实例详解)
- dedecms水印(dedecms上传透明背景图片变成黑色的解决办法)
- python弹球游戏编写过程(python实现坦克大战游戏 附详细注释)
- vue创建dom节点(Vue批量更新dom的实现步骤)
- sqlserver常见函数(SQL Server之JSON 函数详解)
- navicat怎么导入sql数据库文件(Navicat导出.sql文件方法)
- 检查安装apache(Apache下MP3 防盗链的解决办法)
- vue将弹框抽离成组件(vue3 可拖动的左右面板分割组件实现)
- python 模块详解(举例讲解Python常用模块)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9