2011-09-16 4 views
1

Qt(PyQtを使用)アプリケーションに「フルスクリーン」オプションを追加しようとしています。ユーザがF11を押すと、目標はウィンドウを最大化することです。ウィジェットコンストラクタの外でwindowFlagsを変更できますか?

しかし、私はウィンドウのタイトルバーを削除する問題があります。通常、私はを__init__としていますが、タイトルバーは表示されません(予想される動作)。私はQtアプリケーションを起動して、そのようにF11を押すように、ユーザーのために待っていればしかし、:__init____maximizeWindow外にマークされた行を持つ

def keyPressEvent(self, event): 
    if event.key() == QtCore.Qt.Key_F11: 
     self.__doFullScreenCheck() 

def __doFullScreenCheck(self): 
    if self.maximizedFlg == False: 
     self.__maximizeWindow() 

def __maximizeWindow(self): 
    ***self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)*** 
    screen = QtGui.QDesktopWidget().screenGeometry() 
    self.setGeometry(screen) 
    self.maximizedFlg = True 

は、ウィンドウが完全に消滅させるようです。アプリケーションはまだ実行中です(タスクマネージャーに表示されます)。しかし、Alt + Tabまたはタスクマネージャを使用してアプリケーションに切り替えることはできません。

飛行中にウィンドウフラグを変更するにはどうすればよいですか? Qt documentation on QWidget::windowFlagsから

答えて

2

:ウィンドウのフラグを変更するときに、この機能は、ウィジェットを非表示にする原因となる、setParent()を呼び出します。ウィジェットを再び表示させるには、show()に電話する必要があります。

self.show()の後にself.setWindowFlags(...)を追加しても問題ありません。

+0

D'oh!私はその正確な通路を何度も読んでいて、それを逃した。明白なことを指摘してくれてありがとう。 – Andy

関連する問題