【Python】wx.Dialog详解

原文地址(官方文档):

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

wx.Dialog详解

  • wx.dialog
  • 模式对话框和无模式对话框
  • 窗口样式
  • 类层次结构
      • 类Dialog的继承图 :
      • 控制外观
  • 方法总结

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的继承图 :

【Python】wx.Dialog详解_第1张图片

控制外观

【Python】wx.Dialog详解_第2张图片

方法总结

function description
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 对话框是否被图标化。
IsLayoutAdaptationEnabled True 如果所有对话框都启用了布局调整功能,则返回一个静态函数 。
IsMainButtonId 返回 True 如果 ID 是标识符的阵列中被视为针对对话的非滚动区域的主要的按钮。
IsModal True 如果对话框是模式对话框,False 则返回, 否则返回 。
SetAffirmativeId 设置用作wx.OK 按钮的标识符 。
SetEscapeId 设置按钮的标识符,该标识符的作用应类似于此对话框中的标准“取消”按钮。
SetIcon 设置此对话框的图标。
SetIcons 设置此对话框的图标。
SetLayoutAdaptationDone 标记对话框为适应状态,通常是通过滚动使其与小显示器一起使用来实现的。
SetLayoutAdaptationLevel 将搜索按钮和大小调整器的积极程度设置为适应布局的对话框的非滚动部分。
SetLayoutAdaptationMode 设置适应模式,覆盖全局适应标志。
SetLayoutAdapter 用于设置当前布局适配器对象并返回旧适配器的静态函数。
SetReturnCode 设置此窗口的返回码。
Show 隐藏或显示对话框。
ShowModal 显示应用程序模式对话框。
ShowWindowModal 仅显示对父顶级窗口的对话框模式。
enter 进入对话框状态(老版本)
exit 退出对话框状态(老版本)

你可能感兴趣的:(GUI)