前言

很多同学对 Python GUI 的印象还停留在 Tkinter 的“灰头土脸”或者是 Qt Designer 拖出来的原生控件风格。其实,配合强大的 QSS (Qt Style Sheets)PySide6 / PyQt6 的绘图引擎,Python 开发的上位机软件完全可以达到商用级移动端 App 的视觉效果。

最近我在做定制开发时,整理了四套不同行业风格的 UI 框架。今天分享给大家,希望能给大家的毕业设计或项目开发带来一些灵感。

1. 🍔 高端美食/外卖平台 (Gourmet Hunter)

风格关键词: 活力橙、复杂列表、图文混排

这套界面非常适合外卖点餐系统、同城生活服务或电商类 App。

  • 复杂卡片布局:展示了如何在列表项中处理复杂的层级关系。注意看餐厅卡片,图片上方悬浮着“免配送费”标签和收藏按钮(使用了 QStackedLayout 或绝对定位),而底部则整齐排列着评分、标签和配送信息。

  • 细节处理:顶部的 Banner 区域使用了圆角裁剪,底部的 TabBar 导航栏选中状态有高亮颜色反馈,整体配色采用促进食欲的暖橙色 (#FF5722),商业感极强。

2. 🏠 全屋智能/物联网中控 (Smart Home Hub)

风格关键词: Glassmorphism (毛玻璃拟态)、流光渐变、未来感

当下最火的 UI 风格。适合树莓派中控屏、智能家居控制中心。

  • 技术难点:在 PySide6 中实现磨砂玻璃效果。使用了半透明背景色配合高斯模糊算法,让底部的流光背景若隐若现。

  • 组件设计:底部的音乐播放组件采用了悬浮设计,亮度调节滑块(Slider)进行了深度 QSS 定制,摒弃了原生丑陋的样式。

3. 🏃 运动健康/数据可视化 (Apex Motion)

风格关键词: 霓虹动感、数据大屏、无图表库绘图

适合健身房管理系统、个人健康追踪应用。

  • 核心技术:顶部的三色圆环进度条完全没有使用图片,也没有使用 PyEcharts 等第三方库,而是直接使用 Qt 的 QPainter 进行矢量绘制。这样无论怎么缩放都不会失真,且 CPU 占用率极低。

  • 布局:打破了传统的导航栏布局,中间的“+”号按钮采用了异形凸起设计,增强了操作的便捷性。

4. 🏎️ 智能车载/中控系统 (Velocity GT)

风格关键词: 赛博朋克、暗黑科技、硬件交互

这套界面专为智能座驾、车联网或赛车模拟器设计。

  • 视觉亮点:采用了 QStackedLayout 实现了汽车模型的 Hero 叠层布局,背景带有动态的光晕渲染。

  • 交互细节:底部的功能控制按钮(空调、车锁)并非简单的 QPushButton,而是通过重写 paintEvent 和自定义属性实现了激活态的发光特效,模拟真实硬件的反馈感。

🛠️ 技术实现思路 (干货)

很多朋友问,为什么我的 PyQt 程序看起来像 90 年代的软件?主要有这几点没做好:

1. 善用 QSS (Qt Style Sheets)

Qt 的样式表非常强大,语法类似 CSS。不要在代码里写 setStyleSheet,建议将样式剥离成单独的 .qss 文件。

/* 示例:自定义圆角卡片 */
QWidget#CardWidget {
    background-color: #1e293b;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

2. 布局的嵌套艺术

不要试图用一个 GridLayout 搞定所有。高端界面通常是 QVBoxLayout (垂直) 套 QHBoxLayout (水平),再套 QStackedLayout (层叠) 的结果。只有合理的布局嵌套,才能实现自适应分辨率。

3. 自定义绘制 (QPainter)

对于复杂的图表、圆环、波形图,原生的控件往往无法满足需求。这时候需要继承 QWidget 并重写 paintEvent 方法,利用 QPainter 像画画一样把界面画出来。

原创不易,如果觉得这篇分享对你有灵感,欢迎点赞、收藏、关注!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐