如何创建一个警告框?

经由一个对话框与用户交互的最简单的三个办法分别是: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按钮,并且没有更多的样式信息。 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值