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