Python 如何使用最小化/最大化窗口控件显示Qt.Tool窗口?

Python 如何使用最小化/最大化窗口控件显示Qt.Tool窗口?,python,qt,pyqt,pyside,pyqt5,Python,Qt,Pyqt,Pyside,Pyqt5,我有 class ToolWindow(QtWidgets.QMainWindow): """Generic window to be used as non-modal tool Usage: tool_win = ToolWindow() layout = QtWidgets.QHBoxLayout() button = QtWidgets.QPushButton('hello') layout.addWidg

我有

class ToolWindow(QtWidgets.QMainWindow):
    """Generic window to be used as non-modal tool

    Usage:
        tool_win = ToolWindow()
        layout = QtWidgets.QHBoxLayout()
        button = QtWidgets.QPushButton('hello')
        layout.addWidget(button)
        tool_win.setup(layout)
        button.released.connect(lambda: print('hello'))
        tool_win.show()
    """
    def __init__(self):
        super(ToolWindow, self).__init__()

    def setup(self, layout,
              window_title='Untitled', object_name=None, tool=True):
        """Setup tool window"""
        if tool:
            self.setWindowFlags(QtCore.Qt.Tool)

        self.widget = QtWidgets.QWidget()
        self.widget.setLayout(layout)
        self.setCentralWidget(self.widget)
        self.setWindowTitle(window_title)

    def closeEvent(self, event):
        """Delete object when closed"""
        self.deleteLater()
但是,我希望将典型的最大化和最小化窗口控件添加到窗口中。我尝试将以下内容添加到ToolWindow类中,但没有成功(工具窗口仍然没有显示最大化/最小化窗口控件):

是否可以将这些控件添加到工具窗口

或者,我可以创建一个非模式窗口,但它始终位于父应用程序的顶部,并显示最大化/最小化窗口控件吗


请注意,我不希望此工具窗口位于系统上所有窗口的顶部。我只希望它始终位于我的应用程序的顶部。

您应该能够在不带任何标志的情况下使用
QMainWindow
类。只要工具窗口是主应用程序窗口的子窗口,它就会位于主应用程序窗口的顶部(但不是来自其他应用程序的窗口,就像设置“窗口位于顶部”标志一样)

您需要更改
\uuuu init\uuuu
以接受父参数

def __init__(self, parent):
    super(ToolWindow, self).__init__(parent)
如果您有多个工具窗口,并且希望它们按特定顺序位于顶部,则可以调用
my\u Tool\u window.raise()
,将其置于z顺序的顶部


Qt带有一个。您可能想检查一下,看看不同的标志如何影响窗口的显示和行为。

您应该能够只使用
QMainWindow
类而不使用任何标志。只要工具窗口是主应用程序窗口的子窗口,它就会位于主应用程序窗口的顶部(但不是来自其他应用程序的窗口,就像设置“窗口位于顶部”标志一样)

您需要更改
\uuuu init\uuuu
以接受父参数

def __init__(self, parent):
    super(ToolWindow, self).__init__(parent)
如果您有多个工具窗口,并且希望它们按特定顺序位于顶部,则可以调用
my\u Tool\u window.raise()
,将其置于z顺序的顶部


Qt带有一个。您可能需要检查一下,看看不同的标志如何影响窗口显示和行为。

您应该说明需要在哪些平台上工作。您应该说明需要在哪些平台上工作。