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

Python开发日记--手撸加解密小工具(2)

目录

1. UI设计和代码生成

 2.运行代码查看效果

3.小结


1. UI设计和代码生成

昨天讨论到每一类算法设计为一个Tab,利用的是TabWidget,那么接下来就要在每个Tab里设计算法必要的参数了,这里我们会用到组件有Label、PushButton、TextEdit、RadioButton、ComboBox等等,最后拖拽得到如下:

这里注意蓝色方框里的内容,有小坑。

这个时候Sym的基本成型了,考虑到算法实现上的差异,因此先搞通一个工作模式,后续就很简单了,照葫芦画瓢。

保存到目标路径,可以得到一个xxx.ui文件,如下:

光有UI不行,还有转换成Python识别py文件才行,这个时候PyUIC插件起到了关键作用,在当前目录下运行PyUIC,路径Tool -> External Tool -> PyUIC :

 我们可以在终端里看到这样的指令,

这是我们之前添加工具预定好的,在这里发挥了作用,得到CryptoUI.py,:

问题来了,这些lable_2、radioButton_2到底对应是哪些控件呢?如果按这种命名方式开发,如果有200个label,不得疯掉?

所以,回到UI里刚才蓝框的位置,进行名字的修改,初学者容易犯错的点在于QLabel的属性,以为将text设置为想要的名字,代码里QLabel对象就会自动,实则不然,修改如下:

转换后得到代码如下:

 2.运行代码查看效果

我们现在已经生成了CryptoUI.py,它定义了一个类Ui_MainWindow,这个类的两个方法setupUI、retranslateUI。

我们第一步就是要创建这个一个窗口,并运行它,看是否符合之前的预览效果。

 我们在main.py里实现如下函数:

旨在运行窗口得到如下界面:

然而一般来说,没有那么顺利, 如下图:

3.小结

最后回溯下自己的环境,python3.8,pyqt6.4.0,难不成这个还有版本识别的问题?

记录到这里,明天继续。

 PS(遇到了No module name pip,可尝试更新):

相关文章:

  • 数组元素去重
  • WHAT - NextJS 系列之 Rendering - Server Rendering Strategies
  • @PostConstruct 注解的方法用于资源的初始化
  • HTML(12)——背景属性
  • 图解注意力
  • kafka的单机、集群部署安装
  • 如何看待鸿蒙HarmonyOS?
  • React.FC`<ChildComponentProps>`解释
  • 大型企业网络DHCP服务器配置安装实践@FreeBSD
  • 强化学习算法复现记录
  • 【大数据 复习】第3章 分布式文件系统HDFS(重中之重)
  • 刷题——二叉树的前序遍历
  • Java中如何处理日期和时间?
  • 哔哩哔哩视频URL解析原理
  • cocosCreator获取手机剪切板内容
  • Apache的基本使用
  • AWS实战 - 利用IAM对S3做访问控制
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • ES10 特性的完整指南
  • es6
  • ESLint简单操作
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java读取Properties文件的六种方法
  • node.js
  • Redux系列x:源码分析
  • Terraform入门 - 3. 变更基础设施
  • TypeScript迭代器
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 翻译:Hystrix - How To Use
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 实现菜单下拉伸展折叠效果demo
  • 通过git安装npm私有模块
  • 温故知新之javascript面向对象
  • 最简单的无缝轮播
  • 白色的风信子
  • RDS-Mysql 物理备份恢复到本地数据库上
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #android不同版本废弃api,新api。
  • $(selector).each()和$.each()的区别
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Python) SOAP Web Service (HTTP POST)
  • (二)学习JVM —— 垃圾回收机制
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (六)DockerCompose安装与配置
  • (四)React组件、useState、组件样式
  • (四)图像的%2线性拉伸
  • (算法)前K大的和
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计