首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在小部件构造函数之外更改windowFlags吗?

我可以在小部件构造函数之外更改windowFlags吗?
EN

Stack Overflow用户
提问于 2011-09-16 21:58:10
回答 1查看 803关注 0票数 1

我正尝试在我的Qt (使用PyQt)应用程序中添加一个“全屏”选项。如果用户点击F11,则目标是最大化窗口。

我在删除窗口标题栏时遇到了问题。通常,我会在__init__中执行类似self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)的操作,标题栏不会显示(预期行为)。但是,如果我启动Qt应用程序,然后等待用户按F11,如下所示:

代码语言:javascript
运行
复制
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或任务管理器切换回它。

如何在运行中更改窗口标志?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-16 22:28:35

Qt documentation on QWidget::windowFlags

备注:此函数在更改窗口的标志时调用setParent(),从而导致窗口小部件被隐藏。必须调用show()才能使小部件再次可见。

因此,只需在self.setWindowFlags(...)之后添加self.show(),就可以了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7445821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档