Python – 我如何删除窗口边框? 我已经从Qt导入用户界面到Python和应用setWindowFlags

如何使这个窗口无边界(删除最小化/最大化/closures)?

在这里输入图像说明

1 import sys 2 from PyQt4 import QtCore, QtGui 3 from qt import Ui_MainWindow 4 5 class StartQT4(QtGui.QMainWindow): 6 def __init__(self, parent=None): 7 QtGui.QWidget.__init__(self, parent) 8 self.ui = Ui_MainWindow() 9 self.ui.setupUi(self)) 10 11 if __name__ == "__main__": 12 app = QtGui.QApplication(sys.argv) 13 myapp = StartQT4() 14 myapp.show() 15 app.setWindowFlags(app.FramelessWindowHint) <<< does not working 16 sys.exit(app.exec_()) 17 

Solutions Collecting From Web of "Python – 我如何删除窗口边框? 我已经从Qt导入用户界面到Python和应用setWindowFlags"

在主窗口调用show之前,您需要设置窗口标志。

一个最小的工作示例如下所示:

 import sys from PyQt4 import QtCore, QtGui class StartQT4(QtGui.QMainWindow): def __init__(self, parent=None): super(StartQT4, self).__init__(parent) self.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.b = QtGui.QPushButton("exit", self, clicked=self.close) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) myapp = StartQT4() myapp.show() sys.exit(app.exec_()) 

一些窗口标志需要在构造函数中设置为QMainWindow ,我怀疑这是一个。 有关更多信息,请参阅QMainWindow的文档 。

请注意您的STartQT4.__init__调用错误的构造函数。 你应该调用QMainWindow.__init__ ,而不是QWidget.__init__

使用super(StartQT4,self).__init__(parent, <windowflags>)来代替