6

このウィンドウをボーダーレスにする方法(最小化/最大化/閉じるを削除)?

ここに画像の説明を入力してください

  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     
4

2 に答える 2

10

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_())
于 2012-05-29T11:16:51.140 に答える
4

コンストラクターでいくつかのウィンドウフラグを に設定する必要がありますQMainWindow。これはその 1 つであると思われます。詳細については、QMainWindow のドキュメントを参照してください。

STartQT4.__init__間違ったコンストラクターを呼び出すことに注意してください。QMainWindow.__init__ではなく、を呼び出す必要がありQWidget.__init__ます。

super(StartQT4,self).__init__(parent, <windowflags>)代わりに使用

于 2012-05-29T11:11:30.030 に答える