Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
k54kdk
PyQt Fluent Widgets
提交
d557dfd2
P
PyQt Fluent Widgets
项目概览
k54kdk
/
PyQt Fluent Widgets
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PyQt Fluent Widgets
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d557dfd2
编写于
5月 26, 2023
作者:
之一Yo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加 SnapLayout 功能(#230)
上级
d2ac0e23
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
46 addition
and
1 deletion
+46
-1
examples/gallery/app/components/frameless_window.py
examples/gallery/app/components/frameless_window.py
+45
-0
examples/gallery/app/view/main_window.py
examples/gallery/app/view/main_window.py
+1
-1
未找到文件。
examples/gallery/app/components/frameless_window.py
0 → 100644
浏览文件 @
d557dfd2
import
sys
if
sys
.
platform
!=
"win32"
:
from
qframelesswindow
import
FramelessWindow
else
:
from
ctypes.wintypes
import
MSG
import
win32con
from
PyQt5.QtCore
import
QPoint
,
QEvent
,
Qt
from
PyQt5.QtGui
import
QCursor
,
QMouseEvent
from
PyQt5.QtWidgets
import
QApplication
from
qframelesswindow
import
FramelessWindow
as
Window
from
qframelesswindow.titlebar.title_bar_buttons
import
TitleBarButtonState
class
FramelessWindow
(
Window
):
""" Frameless window """
def
nativeEvent
(
self
,
eventType
,
message
):
""" Handle the Windows message """
msg
=
MSG
.
from_address
(
message
.
__int__
())
if
not
msg
.
hWnd
:
return
super
().
nativeEvent
(
eventType
,
message
)
if
msg
.
message
==
win32con
.
WM_NCHITTEST
and
self
.
_isResizeEnabled
:
if
self
.
_isHoverMaxBtn
():
self
.
titleBar
.
maxBtn
.
setState
(
TitleBarButtonState
.
HOVER
)
return
True
,
win32con
.
HTMAXBUTTON
elif
msg
.
message
in
[
0x2A2
,
win32con
.
WM_MOUSELEAVE
]:
self
.
titleBar
.
maxBtn
.
setState
(
TitleBarButtonState
.
NORMAL
)
elif
msg
.
message
in
[
win32con
.
WM_NCLBUTTONDOWN
,
win32con
.
WM_NCLBUTTONDBLCLK
]
and
self
.
_isHoverMaxBtn
():
e
=
QMouseEvent
(
QEvent
.
MouseButtonPress
,
QPoint
(),
Qt
.
LeftButton
,
Qt
.
LeftButton
,
Qt
.
NoModifier
)
QApplication
.
sendEvent
(
self
.
titleBar
.
maxBtn
,
e
)
return
True
,
0
elif
msg
.
message
in
[
win32con
.
WM_NCLBUTTONUP
,
win32con
.
WM_NCRBUTTONUP
]
and
self
.
_isHoverMaxBtn
():
e
=
QMouseEvent
(
QEvent
.
MouseButtonRelease
,
QPoint
(),
Qt
.
LeftButton
,
Qt
.
LeftButton
,
Qt
.
NoModifier
)
QApplication
.
sendEvent
(
self
.
titleBar
.
maxBtn
,
e
)
return
super
().
nativeEvent
(
eventType
,
message
)
def
_isHoverMaxBtn
(
self
):
pos
=
QCursor
.
pos
()
-
self
.
geometry
().
topLeft
()
-
self
.
titleBar
.
pos
()
return
self
.
titleBar
.
childAt
(
pos
)
is
self
.
titleBar
.
maxBtn
\ No newline at end of file
examples/gallery/app/view/main_window.py
浏览文件 @
d557dfd2
...
...
@@ -7,7 +7,6 @@ from PyQt5.QtWidgets import QApplication, QHBoxLayout, QFrame, QWidget
from
qfluentwidgets
import
(
NavigationInterface
,
NavigationItemPosition
,
MessageBox
,
isDarkTheme
,
PopUpAniStackedWidget
,
qrouter
)
from
qfluentwidgets
import
FluentIcon
as
FIF
from
qframelesswindow
import
FramelessWindow
from
.title_bar
import
CustomTitleBar
from
.gallery_interface
import
GalleryInterface
...
...
@@ -27,6 +26,7 @@ from .text_interface import TextInterface
from
.view_interface
import
ViewInterface
from
..common.config
import
SUPPORT_URL
from
..components.avatar_widget
import
AvatarWidget
from
..components.frameless_window
import
FramelessWindow
from
..common.icon
import
Icon
from
..common.signal_bus
import
signalBus
from
..common.style_sheet
import
StyleSheet
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录