在PyQT4中,如何隐藏子窗口小部件的窗口标题?

时间:2015-03-23 19:08:15

标签: python qt qwidget

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

我知道有一种方法,例如widget.setWindowFlagsQtCore.Qt.CustomizeWindowHint)或widget.setWindowFlagsQtCore.Qt.FramelessWindowHint),但它在我的情况下不起作用。

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

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

我的代码:我尝试了两种方法。他们已被评论出来。

编辑:

modul: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)

modul: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添加到工作区来隐藏标题栏。它也不起作用。

1 个答案:

答案 0 :(得分:0)

以下代码段适用于我,通过为addWindow方法指定窗口标记:

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()