网站群建设公司淮北网站建设求职简历
网站群建设公司,淮北网站建设求职简历,wordpress如何导出数据,荆州seo推广荷亮适媚1、FluentWindow效果界面介绍
在我们的WPF开发框架中#xff0c;界面布局UI基于lepoco/wpfui#xff08;https://github.com/lepoco/wpfui#xff09;#xff0c;它的布局也类似于这个FluentWindow的风格#xff0c;如下所示。
以及一些微软的WPF应用界面(Fluent …荷亮适媚1、FluentWindow效果界面介绍在我们的WPF开发框架中界面布局UI基于lepoco/wpfuihttps://github.com/lepoco/wpfui它的布局也类似于这个FluentWindow的风格如下所示。以及一些微软的WPF应用界面(Fluent 主题 https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/whats-new/net90)也是类似如此的。或者类似 WinUI 3 Galleryhttps://github.com/microsoft/WinUI-Gallery也是类似的主题风格。image以及WPF界面项目 lepoco/wpfuihttps://github.com/lepoco/wpfuiimage本文主要是针对Python开发领域对使用PySide6/PyQt6实现自定义窗口布局的探讨因此也注意PyQt-Fluent-Widgets https://github.com/zhiyiYo/PyQt-Fluent-Widgets这个界面组件的实现效果非常不错因此对它的实现方式和组合界面的方式进行了一定的研究学习。image2、界面布局的分析在对这些界面大致了解后心里希望模拟他们的实现方式构造一个类似的自定义窗口布局其中参考上面组件的作者的图示进行分析下。image左侧的导航栏部分分为了上中下三个部分其中导航的滚动布局部分主要就是用来放置一些比较长内容如列表或者树控件等内容的。而右侧的内容区域主要使用QStackWidget的堆叠式组件类似于卡片集合每次显示最顶部的一张。为了使得标题栏和整个窗体的样式一致化我们需采用无边框的窗口处理这个可以采用 PySideSix-Frameless-WindowzhiyiYo / PyQt-Frameless-Window或者参考项目yjg30737pyqt-frameless-windowhttps://github.com/yjg30737/pyqt-frameless-window两者都可以。为了更好的对标题栏进行扩展管理我参考后者项目进行了修改并增加了对MacOS和Linux的效果支持yjg30737pyqt-frameless-window 只有Windows实现没有MacOS等效果 。自定义按钮组件:界面了无边框窗口的实现后我们来看看左侧导航栏的实现首先我们需要把左侧拆分为一个按钮条其中自定义按钮组件需要符合下面几个效果里面包含一个 QLabel 作为背景线条选中标志一个图标QLabel/QPushButton/QToolButton 等选中时背景色变浅未选中时恢复正常鼠标悬停时有特殊效果hover 效果在 PySide6 里我们可以通过自定义 QWidget 来实现。其中整个按钮组为单选组像单选按钮一样点击一个自动取消其他的选中或者叫做互斥选择组 管理类从而组合上面所说的自定义按钮组件。image有了上面的自定义按钮组件MySelectableItem和 互斥选择组组件MySelectableGroup我们就可以简单完成了导航按钮栏目的设计了类似下面的效果实现选择、悬停、移动鼠标进入的样式不同变化。image内容区组件QStackedWidget 是 Qt 里专门用来管理 多个页面/界面 的容器控件它是Qt框架中的一个堆栈窗口控件用于在同一空间内堆叠多个子控件或称“页面”但一次只显示其中一个。它常用于创建多页面或多视图的应用程序比如设置向导、选项卡界面尽管它本身不带选项卡标签和复杂的表单。image它的工作方式有点像 卡片堆叠一次只显示一个子界面可以通过索引int或者 widget 实例切换显示的页面常用于多页面界面切换比如“设置/主页/详情”之间切换。3、使用PySide6/PyQt6实现自定义窗口布局的效果Window系统的普通的亮色模式下的效果如下所示。image如果单击折叠按钮可以看到效果。image如果切换到Windows深色模式下窗体颜色变为黑色同时字体颜色对应变化为亮色一些image如果切换到全屏模式下顶部居中位置有全屏退出提示【按ESC键退出】效果如下image而MacOS样式仿照标题栏左侧放置常规按钮悬停的时候出现按钮图标效果如下所示。image