wxPython - Dialog 类
-
简述
虽然Dialog class对象看起来像一个Frame,它通常用作父框架顶部的弹出窗口。Dialog 的目标是从用户那里收集一些数据并将其发送到父框架。对话框框架可以是模态的(它阻止父框架)或非模态的(可以绕过对话框)。ShowModal() 方法以模态方式显示对话框框架,而 Show() 使其无模式。wxPython 有许多预配置的 Dialog 小部件,例如 MessageDialog、FileDialog、FontDialog 等。wx.Dialog 支持将 Sizer 用作 wx.Frame 对象。因此,可以设计自定义对话框。Wx.Dialog 类构造函数采用以下常用参数 -对话框小部件的默认外观仅在标题栏中显示关闭框。但是,可以使用以下样式参数的组合对其进行自定义 -序列号 参数及说明 1 wx.CAPTION在对话框上放置标题2 wx.DEFAULT_DIALOG_STYLE等价于 wxCAPTION、wxCLOSE_BOX 和 wxSYSTEM_MENU 的组合3 wx.RESIZE_BORDER在窗口周围显示可调整大小的框架4 wxSYSTEM_MENU显示系统菜单5 wx.CLOSE_BOX在框架上显示一个关闭框6 wx.MAXIMIZE_BOX在对话框中显示最大化框7 wx.MINIMIZE_BOX在对话框上显示一个最小化框8 wx.STAY_ON_TOP确保对话框位于所有其他窗口之上9 wx.DIALOG_NO_PARENT防止创建孤立对话框。不推荐用于模态对话框为此类定义了两个偶数活页夹 -序列号 事件和描述 1 EVT_CLOSE当用户或以编程方式关闭对话框时2 EVT_INIT_DIALOG初始化对话框时如上所述,Dialog的目的是收集数据并返回父窗口。但是,Dialog 类可以使用一些有用的方法。序列号 方法和描述 1 DoOK()按下对话框上的 OK 按钮时调用2 ShowModal()以应用程序模式方式显示对话框3 ShowWindowModal()对话框仅对顶级父窗口是模态的4 EndModal()结束从 ShowModal 调用传递值的模式对话框MessageDialog 是预配置的对话框之一。它用于显示一条或多行带有标准 ID 按钮的消息。这是 MessageDialog 上标准按钮的选择列表。序列号 按钮和说明 1 wx.OK显示确定按钮2 wx.CANCEL显示取消按钮3 wx.YES_NO显示是,否按钮4 wx.YES_DEFAULT将“是”按钮设为默认值5 wx.NO_DEFAULT将 No 按钮设为默认值6 wx.ICON_EXCLAMATION显示警报图标7 wx.ICON_ERROR显示错误图标8 wx.ICON_HAND与 wx.ICON_ERROR 相同9 wx.ICON_INFORMATION显示信息图标10 wx.ICON_QUESTION显示一个问题图标 -
消息对话框
这是使用以下构造函数声明的 -要显示的一行或多行文本是消息参数,而标题显示在标题栏上。默认样式参数是 wx.OK|wx.ECNRE。其他样式参数允许自定义消息框。wx.MessageBox 是一个方便的函数来构造一个消息框,而不是使用 MessageDialog。例子
下面给出了对话框的模态和非模态行为的简单演示。父窗口是一个带有两个按钮的 wx.Frame 对象。第一个按钮上的单击事件以模态方式显示对话框。因此,在关闭对话框之前,将阻止对父窗口的任何操作。第二个按钮显示一个无模式对话框,它不会阻碍对父窗口的访问。第三个按钮显示一个 MessageBox。整个代码如下 -上面的代码产生以下输出 - -
wx.TextEntryDialog
此类的对象显示一个带有一个文本字段的对话框、一个提示用户输入的可自定义标签和两个具有预定义样式的按钮。尽管此对话框要求单行输入,但可以使用 TextCtrl 样式(如密码和多行)自定义文本框。当用户单击确定按钮时,文本字段的内容被收集为返回值。TextEntryDialog 构造函数如下 -要在对话框窗口上显示的文本作为消息参数传递。caption 参数是要在标题栏中显示的字符串。文本框中的默认字符串是 vthe 参数。对话框中的 TextCtrl 可以配置为显示密码字符 (wx.TE_PASSWORD) 和/或多行 (wx.TE_MULTILINE)。TextEntry 类的其他方法如下表所示 -序列号 方法和描述 1 SetMaxLength()设置用户可以在文本框中输入的最大字符数2 SetValue()以编程方式设置文本框值3 GetValue()返回文本框的内容4 ShowModal()模态显示对话框。如果用户确认输入则返回 wx.ID_OK,如果对话框被拒绝则返回 wx.ID_CANCEL例子
以下示例中的顶级框架显示了一个按钮和一个只读 TextCtrl 小部件。该按钮响应单击并调用 OnClick() 函数。OnClick() 函数显示一个 TextEntryDialog。对话框的返回值由 GetValue() 函数获取并显示在顶层框架的 TextCtrl 对象中。完整的代码如下 -上面的代码产生以下输出 - -
wx.FileDialog 类
此类表示文件选择器对话框。它使用户能够浏览文件系统并选择要打开或保存的文件。对话框的外观是特定于操作系统的。文件过滤器也可用于仅显示指定扩展名的文件。还可以设置起始目录和默认文件名。FileDialog 构造函数的原型如下所示 -该消息表示要显示的文本。DefaultDir 是初始目录。可以将一种或多种类型的文件设置为通配符参数表示的文件过滤器。为 FileDialog 定义的样式参数是 -序列号 参数及说明 1 wx.FD_DEFAULT_STYLE等价于 wxFD_OPEN2 wx.FD_OPEN这是一个打开的对话框;对话框的默认按钮标签是“打开”3 wx.FD_SAVE这是一个保存对话框;对话框的默认按钮标签是“保存”4 wx.FD_OVERWRITE_PROMPT仅用于保存对话框:提示确认文件是否将被覆盖5 wx.FD_MULTIPLE仅用于打开对话框:允许选择多个文件6 wx.FD_CHANGE_DIR将当前工作目录更改为用户选择的文件所在的目录wx.FileDialog 类的成员函数 -序列号 功能与说明 1 GetDirectory()返回默认目录2 GetFileName()返回默认文件名3 GetPath()返回所选文件的完整路径4 SetDirectory()设置默认目录5 SetFilename()设置默认文件6 SetPath()设置完整路径7 ShowModal()显示对话框,如果用户单击确定按钮返回 wx.ID_OK,否则返回 wx.ID_CANCEL例子
在以下示例中,顶层框架显示一个按钮和一个多行 TextCtrl。EVT_BUTTON 事件绑定器向按钮注册 OnClick() 函数。OnClick() 函数在打开模式下显示一个 FileDialog。它的选择作为 dlg 返回。选择的文件由GetPath() 函数获得,其内容显示在父窗口的TextCtrl 框中。完整的代码如下 -上面的代码产生以下输出 - -
wx.FontDialog 类
此类的对象是一个字体选择器对话框。此对话框的外观也是特定于操作系统的。所选字体的名称、大小、重量等属性作为此对话框的返回值返回。此类构造函数所需的 Fontdata 参数用于初始化这些属性。该类的GetFontData() 方法包含所选字体的参数。以下代码演示了 FontDialog 的使用,其中包含一个按钮和一个标签(StaticText 对象)。单击按钮时触发 OnClick() 事件处理函数。然后将所选字体应用于标签的文本。完整的代码如下 -上面的代码产生以下输出 -