PyQt5-隐藏窗口标题栏而不隐藏框架

2024-06-16 10:20:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用PyQt5开发一个文本编辑器,我想创建我自己的“标题栏”。 enter image description here 我已经创建了我自己的标题栏,我有一些东西就像上面的图片。唯一的问题是窗户的框架。到目前为止,我一直在使用:

setWindowFlags(Qt.FramelessWindowHint) 

但我刚刚意识到,有了这个标志就没有框架(因为它是“无框架的”),没有框架,我无法通过拖动边框来调整窗口大小。在

我尝试过自定义WideWhint标志,但是标题栏仍然存在,只是没有图标、名称和按钮。在

一个临时的解决方案是通过安装eventFilter来检测鼠标何时进入窗口,获取它的位置,如果它在边框上,那么我们必须更改光标图标(上、左、下、左上、左下……),如果用户拖动,则计算并调整窗口大小。在

另一个解决方案是在窗口的每个角落设置8个QSizegrip,但我们必须隐藏这些夹点,并确保它们不会占用任何空间,因为我们将在标题栏的顶部添加3个夹点,因此它会很难看。在

但我不太喜欢这些解决方案。那么有没有什么方法可以让我隐藏标题栏并保留框架?在


Tags: 框架标志图片解决方案qtpyqt5图标边框