在 PyQT4 中,如何隐藏 window 小部件的 window 标题?

In PyQT4, how can I hide the window title of a child widget?

我在 PyQT4 和 Qt Designer 中工作。我的目标是隐藏小部件的标题栏。

我知道有 widget.setWindowFlags (QtCore.Qt.CustomizeWindowHint) 或 widget.setWindowFlags (QtCore.Qt.FramelessWindowHint) 之类的方法,但它不适用于我的情况。

我的小部件是 child 个 QWorkspace。这意味着我的小部件已添加到 Qworspace。我试图以同样的方式隐藏标题栏,但它不起作用。

有人知道在这种情况下如何删除程序的标题栏吗?

我的代码:我尝试了两种方法。它们已被注释掉。

编辑:

模数:search.py

from PyQt4.QtGui import QWidget
from PyQt4.uic import loadUi
from PyQt4.QtCore import Qt

class Search_Window(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent, Qt.FramelessWindowHint)

        self.getPath_search_ui = os.path.join(os.path.abspath("."), 'files', "qt_ui", 'pp_search.ui')
        self.ui_pp_search = loadUi(self.getPath_search_ui, self)

模数:mdi.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import os

from PyQt4.QtGui import  QMainWindow, QWorkspace
from PyQt4.QtCore import Qt
from PyQt4.uic import loadUi

from ..modules_ui.ui_pp_search import Search_Window


    class Mdi_Main(QMainWindow):
        def __init__(self, parent=None):
            QMainWindow.__init__(self, parent)

            self.getPath_mdi = os.path.join(os.path.abspath("."), 'files', "qt_ui", 'pp_mdi.ui')

            self.ui_TestMainWorkSpace = loadUi(self.getPath_mdi, self)

            self.ui_TestMainWorkSpace.showMaximized()

            self.workspace = QWorkspace()
            self.workspace.setScrollBarsEnabled(True)
            self.setCentralWidget(self.workspace)

        def create_action_menu(self):
            self.ui_TestMainWorkSpace.actionSearch.triggered.connect(self.show_search_form)

        def show_search_form(self):
            search_form = Search_Window()
            self.workspace.addWindow(search_form, Qt.FramelessWindowHint)
            search_form.show()

你可以看到我试图通过将 search_form 添加到工作区来隐藏标题栏。它也不起作用。

通过为 addWindow 方法指定 window 标志,以下代码片段对我有用:

from PyQt4.QtGui import QApplication, QWorkspace, QTableView
from PyQt4.QtCore import Qt

def main():
    app = QApplication([])
    workspace = QWorkspace()
    view = QTableView()
    workspace.addWindow(view, Qt.FramelessWindowHint)
    workspace.show()
    app.exec_()

if __name__ == '__main__':
    main()