9.1.2 如何创建一个警告框?
经由一个对话框与用户交互的最简单的三个办法分别是:wx.MessageDialog,它是一个警告框、wx.TextEntryDialog,它提示用户去输入一些短的文本、wx.SingleChoiceDialog,它使用户能够从一个有效选项列表中进行选择。在接下来的三个小节中,我们将论这些简单的对话框。
消息对话框显示一个短的消息,并使用户通过按下按钮来作响应。通常,消息框被用作去显示重要的警告、yes/no问题、或询问用户是否继续某种操作。图9.2显示了一个典型的消息框。
图9.2
使用消息框是十分的简单。例9.2显示了创建一个消息框的两种办法。
例9.2 创建一个消息框
import wx
if __name__
==
"__main__":
app
=
wx.PySimpleApp()
# 方法一,使用类
dlg
=
wx.MessageDialog(None,
"Is
this
explanation
OK?",
'A
Message
Box',
wx.YES_NO
|
wx.ICON_QUESTION)
retCode
=
dlg.ShowModal()
if
(retCode
==
wx.ID_YES):
print
"yes"
else:
print
"no"
dlg.Destroy()
#1 方法二,使用函数
retCode
=
wx.MessageBox("Is
this
way
easier?",
"Via
Function",
wx.YES_NO
|
wx.ICON_QUESTION)
例9.2创建了两个消息框,一个在另一个的后面。这第一个方法是创建类wx.MessageDialog的一个实例,并使用ShowModal()来显示它。
使用wx.MessageDialog类
使用wx.MessageDialog的构造函数,你可以设置对话框的消息和按钮,构造函数如下:
wx.MessageDialog(parent, message,
caption="Message
box",
style=wx.OK
|
wx.CANCEL,
pos=wx.DefaultPosition)
message参数是实际显示在对话框中的文本。如果消息字符串包含\n字符,那么文本将在此换行。caption参数显示在对话框的标题栏中。pos参数使你可以指定对话框显示在屏幕上的位置——在微软Windows下,这个参数将被忽略。
wx.MessageDialog的样式标记分为两类。第一类控制显示在对话框中的按钮。表9.1说明了这些样式。
表9.1 wx.MessageDialog的按钮样式
wx.CANCEL:包括一个cancel(取消)按钮。这个按钮有一个ID值wx.ID_CANCEL。
wx.NO_DEFAULT:在一个wx.YES_NO对话框中,No(否)按钮是默认的。
wx.OK:包括一个OK按钮,这个按钮有一个ID值wx.ID_OK。
wx.YES_DEFAULT:在一个wx.YES_NO对话框中,Yes按钮是默认的。这是默认行为。
wx.YES_NO:包括Yes和No按钮,各自的ID值分别是wx.ID_YES和wx.ID_NO。
第二套样式标记控制紧挨着消息文本的图标。它们显示在表9.2中。
表9.2 wx.MessageDialog的图标样式
wx.ICON_ERROR:表示一个错误的图标。
wx.ICON_EXCLAMATION:表示警告的图标。
wx.ICON_HAND:同wx.ICON_ERROR。
wx.ICON_INFORMATION:信息图标,字母i。
wx.ICON_QUESTION:问号图标。
最后,你可以使用样式wx.STAY_ON_TOP将对话框显示在系统中任何其它窗口的上面,包括系统窗口和wxPython应用程序窗口。
你在例9.2所见到的,对话框通过使用ShowModal()被调用。根据所显示的按钮,返回的结果是以下值之一:wx.ID_OK,
wx.ID_CANCEL,wx.ID_YES,
或
wx.ID_NO。如同其它对话框的情况,你通常使用这些值来控制程序的执行。
使用wx.MessageBox()函数
例9.2中的#1显示了一个调用消息框的更简短的方法。这个便利的函数wx.MessageBox()创建对话框,调用ShowModal(),并且返回下列值之一:wx.YES, wx.NO,
wx.CANCEL,
或
wx.OK。函数的形式比MessageDialog的构造函数更简单,如下所示:
wx.MessageBox(message, caption="Message",
style=wx.OK)
在这个例子中,参数message, caption,
style的意思和构造函数中的相同,你可以使用所有相同的样式标记。正如我们贯穿本章将看到的,在wxPython预定义的几个对话框都有便利的函数。在你为单一的使用创建对话框的时候,你的选择有一个优先的问题。如果你计划束缚住对话框以便多次调用它,那么你可能会优先选择去实例化对象以便你能够束缚该引用,而不使用函数的方法,尽管这对于这些简单的对话框来说,所节约的时间可以忽略不计。
要在你的消息框中显示大量的文本(例如,终端用户许可证的显示),你可以使用wxPython特定的类wx.lib.dialogs.ScrolledMessageDialog,它包含如下的构造函数:
wx.lib.dialogs.ScrolledMessageDialog(parent, msg,
caption,
pos=wx.wxDefaultPosition,
size=(500,300))
这个对话框不使用本地消息框控件,它根据别的wxPython窗口部件来创建一个对话框。它只显示一个OK按钮,并且没有更多的样式信息。
经由一个对话框与用户交互的最简单的三个办法分别是:wx.MessageDialog,它是一个警告框、wx.TextEntryDialog,它提示用户去输入一些短的文本、wx.SingleChoiceDialog,它使用户能够从一个有效选项列表中进行选择。在接下来的三个小节中,我们将论这些简单的对话框。
消息对话框显示一个短的消息,并使用户通过按下按钮来作响应。通常,消息框被用作去显示重要的警告、yes/no问题、或询问用户是否继续某种操作。图9.2显示了一个典型的消息框。
图9.2
使用消息框是十分的简单。例9.2显示了创建一个消息框的两种办法。
例9.2
import
if
#
#1
例9.2创建了两个消息框,一个在另一个的后面。这第一个方法是创建类wx.MessageDialog的一个实例,并使用ShowModal()来显示它。
使用wx.MessageDialog类
使用wx.MessageDialog的构造函数,你可以设置对话框的消息和按钮,构造函数如下:
wx.MessageDialog(parent,
message参数是实际显示在对话框中的文本。如果消息字符串包含\n字符,那么文本将在此换行。caption参数显示在对话框的标题栏中。pos参数使你可以指定对话框显示在屏幕上的位置——在微软Windows下,这个参数将被忽略。
wx.MessageDialog的样式标记分为两类。第一类控制显示在对话框中的按钮。表9.1说明了这些样式。
表9.1
wx.CANCEL:包括一个cancel(取消)按钮。这个按钮有一个ID值wx.ID_CANCEL。
wx.NO_DEFAULT:在一个wx.YES_NO对话框中,No(否)按钮是默认的。
wx.OK:包括一个OK按钮,这个按钮有一个ID值wx.ID_OK。
wx.YES_DEFAULT:在一个wx.YES_NO对话框中,Yes按钮是默认的。这是默认行为。
wx.YES_NO:包括Yes和No按钮,各自的ID值分别是wx.ID_YES和wx.ID_NO。
第二套样式标记控制紧挨着消息文本的图标。它们显示在表9.2中。
表9.2
wx.ICON_ERROR:表示一个错误的图标。
wx.ICON_EXCLAMATION:表示警告的图标。
wx.ICON_HAND:同wx.ICON_ERROR。
wx.ICON_INFORMATION:信息图标,字母i。
wx.ICON_QUESTION:问号图标。
最后,你可以使用样式wx.STAY_ON_TOP将对话框显示在系统中任何其它窗口的上面,包括系统窗口和wxPython应用程序窗口。
你在例9.2所见到的,对话框通过使用ShowModal()被调用。根据所显示的按钮,返回的结果是以下值之一:wx.ID_OK,
使用wx.MessageBox()函数
例9.2中的#1显示了一个调用消息框的更简短的方法。这个便利的函数wx.MessageBox()创建对话框,调用ShowModal(),并且返回下列值之一:wx.YES,
wx.MessageBox(message,
在这个例子中,参数message,
要在你的消息框中显示大量的文本(例如,终端用户许可证的显示),你可以使用wxPython特定的类wx.lib.dialogs.ScrolledMessageDialog,它包含如下的构造函数:
wx.lib.dialogs.ScrolledMessageDialog(parent,
这个对话框不使用本地消息框控件,它根据别的wxPython窗口部件来创建一个对话框。它只显示一个OK按钮,并且没有更多的样式信息。