我正尝试在我的Qt (使用PyQt)应用程序中添加一个“全屏”选项。如果用户点击F11,则目标是最大化窗口。
我在删除窗口标题栏时遇到了问题。通常,我会在__init__中执行类似self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)的操作,标题栏不会显示(预期行为)。但是,如果我启动Qt应用程序,然后等待用户按F11,如下所示:
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在__init__之外的__maximizeWindow中使用标记行似乎会使窗口完全消失。应用程序仍在运行(在任务管理器中可以看到),但我不能使用Alt+Tab或任务管理器切换回它。
如何在运行中更改窗口标志?
发布于 2011-09-16 22:28:35
从Qt documentation on QWidget::windowFlags
备注:此函数在更改窗口的标志时调用
setParent(),从而导致窗口小部件被隐藏。必须调用show()才能使小部件再次可见。
因此,只需在self.setWindowFlags(...)之后添加self.show(),就可以了。
https://stackoverflow.com/questions/7445821
复制相似问题