Qt Designer 和无框窗口

问题描述 投票:0回答:2

我目前正在为一个应用程序创建一个 GUI,我想使其成为无框架并自己添加最小化和关闭按钮。我想要实现的目标可以在这个答案中看到:

我要实现的窗口结构

由于我想要的 GUI 结构非常复杂,我真的需要使用 Qt Designer。有没有办法在 Qt Designer 中实现上面答案中所做的事情?

python qt pyqt5 qt5
2个回答
1
投票

实现此目的的一种方法是像往常一样在 Qt Designer 中创建应用程序窗口,通过

uic.loadUi
在 python 中加载 .ui 文件,并将其添加到
box.contentWidget()
的布局中,而不是链接示例中的
edit
中.


0
投票

在你的 UIfile.py 中

self.setWindowFlag(QtCore.Qt.WindowType.FramelessWindowHint).

此外,您必须在后端文件中创建

QSizeGrip(some_obj)

其中 some_obj 是用于扩展窗口的任何对象(框架、dutton 等),请将其写在 init() 中。

此外,您还必须在类中的后端文件中写入以下内容:

    def move_window(e): # inside __init__()
        """Drag your window"""
        if e.buttons() == QtCore.Qt.MouseButton.LeftButton:
            try:
                self.move(self.pos() + e.globalPosition().toPoint() - self.clickPosition)
                self.clickPosition = e.globalPosition().toPoint()
                e.accept()
            except AttributeError:
                pass

def mousePressEvent(self, e):  # inside class
    self.clickPosition = e.globalPosition().toPoint()

self.some_obj.mouseMoveEvent = move_window # init()

为 PySide6 编写,可改编为 PyQt

© www.soinside.com 2019 - 2024. All rights reserved.