网站建设个体营业执照,网站漏洞解决,做编程的网站有哪些内容,手机网站模板开发工具文章目录 一#xff0e;前言二#xff0e;预览三#xff0e;实现方案1.实现原理1.PyQt52. 具体实现 2.UI设计1.UI组件化、模块化2.UI设计风格思路 3.项目代码结构4.使用方法3.代码分享1.支持跳转网页的QLabel组件2.三角形ICON按钮 四#xff0e;总结 大小#xff1a;33.3 … 文章目录 一前言二预览三实现方案1.实现原理1.PyQt52. 具体实现 2.UI设计1.UI组件化、模块化2.UI设计风格思路 3.项目代码结构4.使用方法3.代码分享1.支持跳转网页的QLabel组件2.三角形ICON按钮 四总结 大小33.3 M软件安装包放在了这里!
一前言
大家好啊本次给大家带来我开发的仿崩坏三web页面的登录页面使用的技术是PyQt5最后打包软件制作成了安装包欢迎大家体验
二预览
这就是我们的软件主体了整体采用一个背景前景是不同方式的登录方案主要分为短信登录、密码登录、扫码登录三个页面都实现了这里只举一个例子来展示界面效果。 三实现方案
1.实现原理
1.PyQt5 PyQt5是一个Python库它提供了对Qt5图形界面GUI应用程序框架的访问。Qt是一个跨平台的应用程序框架它允许开发者创建非常复杂的GUI应用程序。 PyQt5是由Phil Thompson 开发的是对Qt应用程序框架的Python包装。它是PySide的一个可选的APIPySide是它的另一个版本但在某些情况下PyQt5的性能更好。 2. 具体实现 通过使用PyQt5配合python的方案完成GUI界面的设计使用虚拟环境打包的方式缩小打包体积最后使用安装程序将我们的软件做成安装包。 2.UI设计
1.UI组件化、模块化 本次的UI完全是使用手写代码的方式所有组件都是单独的类均可以进行单元模块测试说具体一点我们的最后软件效果就是一架飞机每个模块就是个个组件这些组件可以是特殊的也可以是复用的模块的复用保证了软件整体的风格一致性更好的实现了UI上的“高内聚低耦合”。 这里我们一个组件来举例子登录面板 这些组件我们是能够单独调试测试的
2.UI设计风格思路 有了好的设计才能落实软件GUI的开发本次参考了WEB端的网页在网页端下载相关资源最后通过硬编码放置到项目中这样我们就能够对外隐藏相关资源文件。 这里给大家看下我的资源文件列表 3.项目代码结构 这里认为读者已经拿到本项目的源代码 我们所有的源代码都在src/目录下 为了生成qrc转出的.py方便一些这里仍然写了自定义的脚本来一键生成资源数据 我们主要的代码量在widgets/目录下这里包括基础组件、自定义的组件、页面组件、特殊组件。 4.使用方法
通过安装程序之后创建桌面图标双击打开后软件会全屏如果需要关闭的话直接点击登录区域的X即可。
3.代码分享
这里和大家分享我的代码
1.支持跳转网页的QLabel组件
class HyperlinkLabel(QLabel):封装了支持超链接和文本交互的 QLabel。def __init__(self, parentNone):super().__init__(parent)self.setWordWrap(True)self.setOpenExternalLinks(True) # 允许点击链接跳转到浏览器self.setTextInteractionFlags(Qt.TextBrowserInteraction) # 支持文字交互def set_html_text(self, html_text):设置 HTML 格式的文本。self.setText(html_text)
2.三角形ICON按钮
class TriangleIconButton(QPushButton):def __init__(self, *args, **kwargs):super(TriangleIconButton, self).__init__(*args, **kwargs)self.param_init()self.ui_init()def param_init(self):self.icon self.qta_icon self.size_factor 1def ui_init(self):self.setFixedSize(35, 35) # 设置按钮的大小self.setCursor(Qt.PointingHandCursor)self.setStyleSheet(border: none;) # 去掉边框def set_icon(self, icon_name: str):设置按钮的图标。:param icon_name: 图标名称支持 QtAwesome 图标的名称如 fa5s.triangle。self.icon icon_nameself.qta_icon qta.icon(icon_name, color#47B1F5)self.update() # 更新按钮界面以便重新绘制图标def paintEvent(self, event):super(TriangleIconButton, self).paintEvent(event)if not self.qta_icon: returnpainter QPainter(self)# 设置为透明背景painter.setRenderHint(QPainter.Antialiasing)painter.setOpacity(1) # 保证图标不透明# 通过 QtAwesome 渲染设置的图标self.qta_icon.paint(painter, QRect(0, 0, self.width(), self.height()), Qt.AlignCenter)# 画一个白色遮罩覆盖右下角的四分之一区域rect_width self.width() // self.size_factorrect_height self.height() // self.size_factormask_polygon QPolygon([QPoint(self.width() - rect_width, self.height()), # 左下角右下四分之一区域的左上角QPoint(self.width(), self.height() - rect_height), # 右上角QPoint(self.width(), self.height()) # 右下角])painter.setBrush(QColor(255, 255, 255)) # 设置白色遮罩painter.setPen(Qt.transparent) # 不显示边框painter.drawPolygon(mask_polygon) # 绘制白色三角形遮罩painter.end()
四总结
本次和大家分享了我使用PyQt5开发的一款仿崩坏三登录页面只有UI没有功能大家需要代码的话请私聊作者自己加后端逻辑前端固然美丽但是没有强大的后端也只是一个躯壳。大家觉得我做的还算可以能给点个赞么