前面在《利用Python3开发一款小工具(引言)》文章中,对我们的需求进行了分析。为了能够让用户运行该工具,因此我们需要一个ui界面,而python中常用的工具就是pyqt,本文将使用pyqt5对小工具的界面进行设计。
笔者只学过一年的素描,没有任何设计与美工的功底,既然该小工具只是给部门同事用的,那就没必要那么讲究了,只要方便好用就行,哈哈哈~~(第一次把不会做说得这么清新脱俗)。


本文包含以下章节

  • 1、简单的小栗子
  • 2、我们的界面
    • 2.1、界面规划
    • 2.2、界面规设(luan)计(hua)
  • 3、如何让小工具显示图标

1、简单的小栗子

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import os
import sys
import paramiko
from PyQt5 import QtCore, QtGui, QtWidgetsif __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MyUI = QtWidgets.QWidget()MyUI.setWindowsTitle('demo')MyUI.resize(250, 150)MyUI.show()sys.exit(app.exec_())


上面的图就是运行之后的小窗口,下面对代码进行分块介绍:


#!/usr/bin/python3
# -*- coding: utf-8 -*-

第一行的含义是指定python3执行,第二行指定编码方式utf-8


import os
import sys
import paramiko
from PyQt5 import QtCore, QtGui, QtWidgets

这里是导入基本的必要模块,因为需要做界面,因此我我们将PyQt模块导入。


app = QtWidgets.QApplication(sys.argv)

所有的PyQt5应用必须创建一个应用(Application)对象。sys.argv参数是一个来自命令行的参数列表。Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。


MyUI = QtWidgets.QWidget()

Qwidget组件是PyQt5中所有用户界面类的基础类。这里给QWidget提供了默认的构造方法。


MyUI.setWindowsTitle('demo')
MyUI.resize(250, 150)

resize()方法调整了widget组件的大小。它现在是250px宽,150px高。
setWindowsTitle(‘demo’)设置了我们窗口的标题,这个标题显示在标题栏中。


MyUI.show()

show()方法在屏幕上显示出widget。一个widget对象在这里第一次被在内存中创建,并且之后在屏幕上显示。


sys.exit(app.exec_())

最后,应用进入主循环。在这个地方,事件处理开始执行。主循环用于接收来自窗口触发的事件,并且转发他们到widget应用上处理。如果我们调用exit()方法或主widget组件被销毁,主循环将退出。sys.exit()方法确保一个不留垃圾的退出。系统环境将会被通知应用是怎样被结束的。

exec_()方法有一个下划线。因为exec是Python保留关键字。因此,用exec_()来代替。

2、我们的界面

很多时候界面非常的复杂,我们单纯的使用代码生成,费时费力,那有没有一个简单直观的方式构造一个界面呢?
当然是有的,还记得开发环境搭建那一章节吧,我们在pycharm里添加了一个扩展工具qt designer。我们在这里就要用到qt designer来设计我们的界面。

2.1、界面规划

  • 用户设置部分
    涉及到windows代码上传到Linux中,必然包含了Linux服务器地址、用户名、密码、远程目录名、本地工程路径等。这里都放在用户设置部分。
  • 命令勾选部分
    因为小工具上传完代码后,需要根据我们勾选的命令,执行不同版本的编译。而且不同的编译命令,需要在不同的服务器上执行,这也是后续代码处理中折磨我好久的东西。不得不吐槽一下配置管理员,两个东西放在同一个服务器上编译很难吗,摔碗~~~~
  • 运行日志查看部分
    运行中肯定是要日志的吗,不论你看或者不看,它都在那里,不增不减。而且万一出错了,这里也要能够打印出trace日志,不然没有日志让我定位,臣妾做不到啊。

2.2、界面规设(luan)计(hua)

没有任何美工基础的人,是没有发言权的,我们的目标是:没有蛀牙。不不不,是能够简单实用就ok。所以,界面设计成了下面的样子。设计步骤:

  • pycharm-tools-extension tools- qt designer
  • 尽情的乱画吧
    下面是我自己做的界面,部分信息做了处理

3、如何让小工具显示图标

先扔出代码

class Ui_L3AutoCodeCheck(QtWidgets.QMainWindow):def __init__(self):super(Ui_L3AutoCodeCheck, self).__init__()***省略*****icon = QtGui.QIcon()icon.addPixmap(QtGui.QPixmap("python.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)self.setWindowIcon(QtGui.QIcon(':python.ico'))***省略****

重点关注这里的代码,将本地的ico图形文件关联到工具中,这里需要用到extension tools中的pyrcc将ico的文件转换py文件。

  • 建立img.qry文件
<!DOCTYPE RCC>
<RCC><qresource><file alias="python.ico">python.ico</file></qresource>
</RCC>
  • qt designer中将图片添加到resource中
  • pyrcc生成py文件

注意
因为windows下的图标是要可以随着图标大小变化的,所以你的ico图片,不能只有一个尺寸,需要生成不同尺寸的图片,才能满足不同场景下图标的显示,否则有可能显示不了哟!
生成不同尺寸ico的工具,我推荐一个IconWorkshop,真的是傻瓜式的,具体的使用方法问度娘,挺简单的。
附赠ico图标下载地址:https://www.easyicon.net/,www.iconfont.cn/,不同尺寸应有尽有。
我的小工具图标我做主,看官门忍住不要嘲笑我,放图:

俗话说,每一个成功男人的背后,都有一个优秀的女人。再好看的界面,也仅仅是个界面,没有后台程序的界面是没有灵魂的。下一篇文章,我会详细介绍一下,我们界面中每个按钮背后的“女人”。

利用Python3开发一款小工具(界面的设计)相关推荐

  1. 利用Python3开发一款小工具(环境配置)

    前面一篇文章对开发的小工具的需求进行了分析,已经大致清楚了我们需要使用的工具,本文将逐个工具进行安装配置,主要包括: 1.python36安装 2.pycharm安装 3.pyqt5与pyqt5-to ...

  2. 如何利用HTML5快速开发一款小游戏

    如何利用HTML5开发一款小游戏?Cocos2d-js是一款流行的H5游戏开发框架,介绍Cocos2d-js的核心技术和使用方法,学完以后可以独立开发一款休闲游戏,主要介绍cocos2d-js中的图层 ...

  3. android 开发小工具,Android 开发者必备的八款小工具

    在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一些Android 开发必备的小工具. Android Pixe ...

  4. 邹伟:如何开发一款小游戏

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 邹伟,后端高级工程师,对前端也有一定开发经验.2010年于华南理工大学毕业后加入腾讯,参与CDB.TGW等云服务研发,现主要负责微信游戏业务 ...

  5. 邹伟:如何开发一款小游戏 1

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 邹伟,后端高级工程师,对前端也有一定开发经验.2010年于华南理工大学毕业后加入腾讯,参与CDB.TGW等云服务研发,现主要负责微信游戏业务 ...

  6. 如何实战开发一款小游戏

    如何快速开发一款火爆的小游戏?"火爆"是一个偏运营的词,今天介绍的内容可能更倾向于技术方面,即如何利用微信的开放能力开发一款小游戏.小游戏上线120天时发布了几个重要的消息,其中有 ...

  7. 抢饭碗?这位 05 后开发三款小程序!

    整理 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 2017 年 1 月 9 日,微信小程序横空出世.而后,支付宝小程序.百度小程序.12大厂商联盟的快应用等纷纷入局,在短短两年的时间里, ...

  8. WPF开发的实用小工具 - 快捷悬浮菜单

    WPF开发的实用小工具 - 快捷悬浮菜单 ❝ 本文由网友投稿,Dotnet9站长整理.站长觉得这小工具很实用,站长家里.公司也在尝试使用了. 行文目录: 这工具有什么用? 正文 源码获取及应用下载体验 ...

  9. 如果定制开发一款小程序

    定制开发一个微信小程序需要投入多少钱呢?定制开发一款小程序需要投入的人员包括项目经理.产品经理.UI设计师.前端开发工程师.后端开发工程师.测试人员等,一般需要1-2个月左右的开发周期.然而一般情况下 ...

最新文章

  1. Spring Boot 2 + Redis 对象缓存
  2. 多租户的数据库方案分析
  3. 关于python进行批量数据备份及部署
  4. 微软的面试题(超变态但是很经典)
  5. SAP Spartacus Sample Data Extension
  6. php mysql 拆分join_PHP拼接Sql,MySql拆分数据(substring_index())作为判断条件
  7. example 排序_个性化推荐系统源代码之基于 WideDeep模型的在线排序
  8. 计算机演示文稿教学实例课件,计算机图形学的教学演示文稿ppt课件.ppt
  9. Django auth认证
  10. 如何下载并使用别人写的库——jupyter notebook
  11. hutool常用方法,工具类
  12. 回忆我的过去一年2020年考研以及研究生规划
  13. 缓解眼睛疲劳:按摩+复调钢琴曲
  14. CentOS7设置字符集为zh_CN.gbk
  15. 物联网卡的6个应用案例全面解析
  16. Python基础数据类型---列表、元组、字典、集合、编码进价、数据类型转换
  17. linux查看redis链接数,查看redis连接数
  18. 极客日报:中国批准AMD收购赛灵思;微信可直接打开淘宝链接购买商品;​马斯克称今年将实现全自动驾驶
  19. Flutter - 控件之 Picker
  20. 网络编程---TCP/UDP套接字编程原理

热门文章

  1. 什么是tomcat?
  2. Matlab中的傅里叶级数展开函数
  3. Linux运维之网络的配置,四种ip方式的设定,网关,dns的设定及物理机的网络连接
  4. Android9.0默认将开发者选项中的OEM锁开关打开
  5. 微软技术交流群 303295519
  6. 数据库------MYSQL
  7. STM32F103ZET6【标准库函数开发】------PB3,PB4当做普通IO口,重定义
  8. HM下载调试_ubuntu20
  9. 杰里之AD140录音编码接口【篇】
  10. mysql成绩表_mysql--学生课程成绩表