最近,QQ的办公版本——TIM进行了一次更新升级。本次更新升级大幅修改了界面的样式,看起来更加的清爽、简洁和高效了。

这种界面州的先生还是比较喜欢的,没有QQ那么花里胡哨,也比微信那些残缺的功能更加丰富。

并且这次的登录界面还新增了微信登录的选项,看来 TIM 还打算从微信那边争取一部分用户过来。

闲话少说,进入正题。

州的先生看到这个出自大厂的图形界面程序,不由得想用 Python 的图形界面模块来实现一个。

在上古时代,前端开发还是被称为“切图仔”的岗位,那时候的绝佳一个练手方式就是使用手写 HTML 和 CSS 来模仿各个网站的样式。

同样的,要想把桌面图形程序写得精美、好看,对优秀桌面图形界面程序进行模仿必不可少。今天,咱们就来使用 Python 的图形界面模块 PyQt5 模仿实现最新版本的 TIM 的登录界面。

两者的对比如下图所示:

一、画虎先画骨

在动工之前,我们先来分析和设计一下这个登录界面的结构。TIM 原始的界面布局咱们无从得知,但是根据呈现出来的样式,咱们可以确定自己按照什么结构的组织这个登录界面。

首先,整个登录界面,由2块组成:

左侧的宣传图片

右侧的功能按钮

左侧的宣传图片没啥功能点,咱们可以直接用一个背景图片搞定;右侧的功能按钮则分了很多类和层级:

顶部的程序控制按钮组

中部的QQ/微信登录方式图标切换组;

中下部的表单输入框组;

底部的选项控制组;

基于此,咱们综合选择网格布局、垂直布局和水平布局来排列各个控件。

然后,登陆界面的各个子模块和功能按照如下图所示来选择 PyQt5 中的控件:

这样,登录界面的结构就完成了。

二、准备素材

图标在现代软件设计中的作用越来越大,恰当的图标使用可以增强界面的视觉美观和交互友好。

在TIM的登录界面中,也是使用的很多的图标来表示各个功能的操作,比如设置按钮、关闭按钮、切换按钮、账号选择按钮、登录按钮等。

在此,我们通过著名的阿里巴巴在线矢量图标库——IconFont 来获取所需的图标文件,经过选择,最终下载得到:

准备好图标之后,我们就可以在代码中使用了。对于这些图标文件,有两种使用方式:

直接使用setIcon()方法进行图标设置,例如:

self.qq_icon.setIcon(QtGui.QIcon("./qq_hover.svg"))

在QSS中编写样式引用图标文件,例如:

QPushButton#setting_icon{

border-image:url("./setting.svg");

}

上述两种方式,我们根据实际的情况,都使用了。

三、完善细节

在界面结构搭建好之后,按钮图标准备和使用上之后,剩下的就是边边角角的细节优化和美化了。

色彩、间距的调整

TIM的登录界面主体上采用了灰色的字体颜色,还有QQ/微信登录切换的图标颜色、各个组件之间的间距、对齐方式都需要我们进行细致的调整。这些通过 QSS 、控件的setFixedSize()方法和布局的setAlignment()方法都可以完美实现。

窗口边框的隐藏

将窗口默认的工具栏边框隐藏掉,然后使用自定义的按钮来实现窗口的控制;

self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

窗口阴影的实现

取消掉窗口边框之后,窗口与外界之间就没有的隔离的标志,我们可以重写绘制一个窗口的边框线,但是TIM使用的是窗口阴影的方式来突出和隔离界面,所以咱们也使用阴影的方式来实现:

shadow=QtWidgets.QGraphicsDropShadowEffect(self,

blurRadius=9.0,

color=QtGui.QColor(116,116,116),

offset=QtCore.QPointF(0,0))

window.setGraphicsEffect(shadow)

四、成果展示

最终,使用 Python 模仿TIM编写出来的登录图形界面效果如下图所示:

python制作qq登录界面_用Python实现一个最新QQ办公版(TIM)的登录界面相关推荐

  1. python制作聊天机器人原理_用 Python 来做一个聊天机器人吧!(一)

    在我的一个回答里,我提到了用 Python 搭建聊天机器人.从今天开始,我就带着大家从0开始搭建一个聊天机器人. (顺便说一句,我喜欢把链接像上面这样加在文字里,如果找不到文中所说的资源,可以看看周围 ...

  2. python制作解压工具_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  3. python制作游戏修改器_基于Python的游戏是如何制作的?

    让我们先把这个让开:the game should run even on a computer where there's no python installation. So my questio ...

  4. python制作表情包教程_使用Python制作表情包实现换脸功能

    "表情包"是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓" ...

  5. python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...

    论文写作指导:请加QQ229366758 基于Python和Django框架的物联网智能设备管理系统的设计与实现 作者:未知 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理 ...

  6. python制作录屏软件_【Python成长之路】用python制作一款录屏小工具(1)

    哈喽大家好,我是鹏哥. 今天我想学习记录的内容是 --如何用python实现录屏. ~~~上课铃~~~ 1 写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位.以前都是 ...

  7. python 制作自己的新闻_用Python制作一个每日新闻热点爬虫脚本

    序言 文中的文本及图片来自互联网,仅作学习培训.沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决. 刚触碰Python的初学者.新手,能够拷贝下边的连接去收看Python的基本新手 ...

  8. python制作二维码_利用Python制作二维码

    利用简单的Python代码制作二维码 友情链接:饿了么外卖大红包限时领取 一.制作工具 安装Python环境 + PyCharm编译器. 二.电脑系统 本人win10 + Python3.7.0 + ...

  9. 用python制作二维码_用python做一个可视化生成二维码的工具

    用python做一个可视化生成二维码的工具 环境 pip install gooey pip install MyQR 源代码 from gooey import GooeyParser,Gooey ...

  10. python制作心形照片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

最新文章

  1. 协作是企业管理的重点和难点
  2. 解决Latex图片或者表格浮动
  3. string 与char *的区别
  4. JDBC之在分层结构中实现业务
  5. 实验技术杂志文献20180126
  6. HDU - 2825 Wireless Password(AC自动机+状压dp)
  7. 每天一个linxu命令6之jps  查看java进程的端口
  8. 三种class反编译工具jad、frontEndPlus、jd-gui 的使用方法
  9. 怎么将webm格式转换为mp4
  10. java中activeThread_java多线程机制中的Thread和Runnable()区别
  11. pinia 的使用(三)—— actions
  12. sql中的类型转换---学习
  13. php 野生动物公益保护系统
  14. 模拟支付宝、淘宝登录1
  15. Python中的虚拟变量(dummy variables)
  16. vue获取地图经纬度
  17. OIDC(OpenId Connect)身份认证
  18. 5G时代下的室内定位系统,更安全高精准的室内定位系统-新导智能
  19. IDEA去除拼音不规范带来的波浪线
  20. 成立几个月就成了独角兽是什么体验?

热门文章

  1. CISP注册信息安全工程师证书及展示
  2. fadeIn fadeOut
  3. 系统分析师和系统架构师的区别?
  4. 如何设置云服务器语言,云服务器如何更换语言
  5. 数字证书与数字签名(图文并茂)详解
  6. 白下高新区妇联、科协举办亲子活动,小朋友们走进云创大数据
  7. iCollections for Mac(桌面文件整理软件)
  8. 视频监控系统上云解决方案EasyCVR集成海康EHome私有协议系列——文件查找操作流程
  9. 从业多年数据分析师的亲身经验!
  10. vue导入处理Excel表格详解