【Python】wx.Dialog详解

原文地址(官方文档):

https://www.wxpython.org/Phoenix/docs/html/wx.Dialog.html
翻译不易,且行且珍惜.

wx.dialog

wx.Dialog是一个带有标题栏的窗口,有时是一个系统菜单,可以在屏幕上移动。

它可以包含控件和其他窗口,通常用于允许用户做出选择或回答问题。

对于具有低分辨率屏幕的计算机,对话框可以自动滚动:请参阅 自动滚动 对话框 了解更多详细信息。

对话框通常包含一个允许关闭对话框的按钮或两个按钮,一个接受更改,另一个则放弃更改(如果用户按下“ Esc”键,则该按钮(如果存在)会自动激活)。默认情况下,带有标准wx.ID_OK 和 wx.ID_CANCEL 标识符的按钮的 行为符合预期。从wxWidgets 2.7开始,也可以改用带有不同标识符的按钮,请参见SetAffirmativeId 和 SetEscapeId。

还要注意, CreateButtonSizer 应该使用来创建适合当前平台并正确放置的按钮(包括与平台有关的按钮顺序)。

模式对话框和无模式对话框

模式对话框会阻止其他窗口上的程序流和用户输入,直到被关闭为止,而无模式对话框的行为更像是程序流中的框架,并且仍然可以在其他窗口中输入。要显示模式对话框,您应该使用 ShowModal 方法,而要无模式地显示对话框,您只需使用 Show,就像使用框架一样。注意,模式对话框是窗口派生的对象的极少数示例之一,可以在堆栈上而不是在堆上创建。换句话说,虽然大多数窗口都是这样创建的:

# 在Python中,我们不必担心堆栈与堆的关系,但是
# 这意味着确实需要销毁对话框。#对话框用法的典型模式
# 如下所示:
def AskUser(self):
    try:
        dlg = MyAskDialog(self)
        if dlg.ShowModal() == wx.ID_OK:
            # do something here
            print('Hello')
        else:
            # handle dialog being cancelled or ended by some other button
            ...
    finally:
        # explicitly cause the dialog to destroy itself
        dlg.Destroy()

通过使用更简单的代码,您可以在对话框中获得相同的结果:

# Things can be made a little simpler in Python by using the dialog as a
# context manager, using the with statement, like this:
def AskUser(self):
    with MyAskDialog(self) as dlg:
        if dlg.ShowModal() == wx.ID_OK:
            # do something here
            print('Hello')
        else:
            # handle dialog being cancelled or ended by some other button
            ...

    # The dialog is automatically destroyed on exit from the context manager

窗口样式

应用程序可以为对话框定义

  • wx.CloseEvent处理程序,以响应系统关闭事件。此类支持以下样式:
  • wx.CAPTION: 在对话框上添加标题
  • wx.DEFAULT_DIALOG_STYLE: 相当于wx.CAPTION, wx.CLOSE_BOX两者组合
  • wx.RESIZE_BORDER: 在窗口周围显示可调整大小的框架。
  • wx.SYSTEM_MENU: 显示系统菜单。
  • wx.CLOSE_BOX: 在框架上显示一个关闭框。
  • wx.MAXIMIZE_BOX: 在对话框上显示一个最大化框。
  • wx.MINIMIZE_BOX: 在对话框上显示一个最小化框。
  • THICK_FRAME: 在窗口周围显示粗框。
  • wx.STAY_ON_TOP: 对话框位于所有其他窗口的顶部。
  • NO_3D: 此样式已过时,不再做任何事情,请勿在任何新代码中使用它。

类层次结构

类Dialog的继承图 :

控制外观

方法总结

functiondescription
init默认构造函数。
AddMainButtonId添加一个标识符,该标识符被视为对话框非滚动区域的主按钮。
CanDoLayoutAdaptation返回 True 此对话框是否可以并且应该使用进行布局调整
Centre使对话框居中显示。
Create用于两步对话框构造。
CreateButtonSizer用标准按钮创建一个尺寸调整器。
CreateSeparatedButtonSizer用标准按钮创建一个大小调整器,该按钮使用 CreateButtonSizer 水平wx.StaticLine与对话框的其余内容 分隔开。
CreateSeparatedSizer如果有必要,则返回包含给定大小的大小调整器,并用分隔的wx.StaticLine返回 。
CreateStdDialogButtonSizer用标准按钮创建一个 wx.StdDialogBu​​ttonSizer。
CreateTextSizer拆分文本了在新行,并将该行到 wx.StaticText 垂直对象 wx.BoxSizer。
DoLayoutAdaptation通常在对话框太大而无法容纳在显示器上时执行布局调整。
EnableLayoutAdaptation启用或禁用所有对话框的布局自适应的静态功能。
EndModal结束模式对话框,传递要从ShowModal 调用返回的值 。
GetAffirmativeId获取按钮的标识符,该标识符的作用类似于wx.OK 此对话框中的标准 按钮。
GetContentWindow重写此方法将返回一个包含对话框主要内容的窗口。
GetEscapeId获取按钮的标识符,以将按钮的按下映射到该按钮 ESC 。
GetLayoutAdaptationDone返回 True 对话框是否已被修改,通常是通过使其滚动以与小显示器一起使用来实现的。
GetLayoutAdaptationLevel获取一个值,该值表示搜索要在布局自适应对话框的非滚动部分中的按钮和大小调整器的积极程度。
GetLayoutAdaptationMode获取自适应模式,覆盖全局自适应标志。
GetLayoutAdapter获取当前布局适配器对象的静态函数。
GetMainButtonIds返回一个标识符数组,该标识符数组被视为对话框非滚动区域的主要按钮。
GetReturnCode获取此窗口的返回码。
Iconize图标化或还原对话框。
IsIconized返回 True 对话框是否被图标化。
IsLayoutAdaptationEnabledTrue 如果所有对话框都启用了布局调整功能,则返回一个静态函数 。
IsMainButtonId返回 True 如果 ID 是标识符的阵列中被视为针对对话的非滚动区域的主要的按钮。
IsModal True如果对话框是模式对话框,False 则返回, 否则返回 。
SetAffirmativeId设置用作wx.OK 按钮的标识符 。
SetEscapeId设置按钮的标识符,该标识符的作用应类似于此对话框中的标准“取消”按钮。
SetIcon设置此对话框的图标。
SetIcons设置此对话框的图标。
SetLayoutAdaptationDone标记对话框为适应状态,通常是通过滚动使其与小显示器一起使用来实现的。
SetLayoutAdaptationLevel将搜索按钮和大小调整器的积极程度设置为适应布局的对话框的非滚动部分。
SetLayoutAdaptationMode设置适应模式,覆盖全局适应标志。
SetLayoutAdapter用于设置当前布局适配器对象并返回旧适配器的静态函数。
SetReturnCode设置此窗口的返回码。
Show隐藏或显示对话框。
ShowModal显示应用程序模式对话框。
ShowWindowModal仅显示对父顶级窗口的对话框模式。
enter进入对话框状态(老版本)
exit退出对话框状态(老版本)
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值