码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • wxpython设计GUI:窗口Frame最大化、最小化、关闭及全屏显示的说明


    在用户实际使用窗口时必然涉及到窗口的最大化、最小化、是否全屏显示及窗口关闭操作。

    wx.Frame介绍链接:https://docs.wxpython.org/wx.Frame.html?highlight=frame#wx-frame

    1. 窗口最大化、最小化

    设置窗口打开时的界面状态主要是通过设置wx.Frame的style属性:
    在这里插入图片描述
    在这里插入图片描述
    Frame的style设置成wx.MAXIMIZE_BOX默认打开窗口时最大化显示窗口,窗口最大化显示的大小为Frame设置的size。

    设置Frame的style为wx.MAXIMIZE_BOX后,打开窗口无法再选择右上角的最大化按钮实现窗口的最大化操作。
    在这里插入图片描述
    Frame的style设置成wx.MINIMIZE_BOX默认打开窗口时无法最小化窗口。

    class MyFrame(wx.Frame):
    
        def __init__(self, parent, id=-1, UpdateUI=None):
            wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"", pos=wx.DefaultPosition,
                              size=wx.Size(1300, 700), style=wx.DEFAULT_FRAME_STYLE^(wx.MINIMIZE_BOX))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    设置Frame的style为wx.MINIMIZE_BOX后,打开的窗口无法最小化。
    在这里插入图片描述

    2. 全屏显示窗口

    增加语句:self.ShowFullScreen(True, wx.DEFAULT_FRAME_STYLE^(wx.CLOSE_BOX)),默认初始化窗口就全屏显示。全屏显示窗口之后,窗口显示的大小不受Frame的size属性限制。

    class MyFrame(wx.Frame):
    
        def __init__(self, parent, id=-1, UpdateUI=None):
            wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"", pos=wx.DefaultPosition,
                              size=wx.Size(1300, 700), style=wx.DEFAULT_FRAME_STYLE)
            self.UpdateUI = UpdateUI
    
            self.ShowFullScreen(True, wx.DEFAULT_FRAME_STYLE^(wx.CLOSE_BOX))  # 初始化窗口就默认全屏显示
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用上述语句设置窗口全屏显示,打开窗口后最大化窗口操作按钮将被禁用:
    在这里插入图片描述

    3. 窗口关闭操作

    用户点击窗口右上角的关闭窗口按钮关闭窗口,可以设置一个窗口关闭的响应事件。
    在这里插入图片描述
    例如:用户选中关闭窗口按钮后,将触发一个窗口关闭事件,跳出一个选择框,进一步确认是否用户真的想要关闭窗口而不是误操作。

    # 窗口关闭事件
            self.Bind(wx.EVT_CLOSE, self.exit_sys)
    
    • 1
    • 2
        def exit_sys(self, event):
            toastone = wx.MessageDialog(None, "确定要退出系统吗?", "确认信息提示",
                                        wx.YES_NO | wx.ICON_QUESTION)
            if toastone.ShowModal() == wx.ID_YES:  # 如果点击了提示框的确定按钮
                toastone.Destroy()  # 则关闭提示框
                sys.exit(1)
            if toastone.ShowModal() == wx.ID_NO:
                toastone.Destroy()  # 则关闭提示框
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

  • 相关阅读:
    浅析 SQL Server 的 CROSS APPLY 和 OUTER APPLY 查询 - 第二部分
    智能升级:AntSK教你如何让聊天机器人实现智能联网操作
    【Windows篇】Telnet指令介绍以及telnet测试端口连接示例
    怎么在windows上把python程序打包成mac上运行的程序
    使用Ceres进行slam必须要弄清楚的几个类和函数
    机器学习——线性代数中矩阵和向量的基本介绍
    UG NX二次开发(C#)-UI Styler-批量选择点
    利用EMQX建立MQTT服务器通讯
    【代码随想录】算法训练营 第八天 第四章 字符串 Part 1
    带你走进不一样的策略模式
  • 原文地址:https://blog.csdn.net/Logintern09/article/details/126693629
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号