zoukankan      html  css  js  c++  java
  • wxpython 对话框

    . 消息对话框(wx.MessageDialog)

    消息对话框

    与用户通信最基本的机制是wx.MessageDialog,它是一个简单的提示框。

    wx.MessageDialog可用作一个简单的OK框或yes/no对话框。下面的片断显示了yes/no对话框:

    dlg = wx.MessageDialog(None, 'Is this the coolest thing ever!',                         'MessageDialog', wx.YES_NO | wx.ICON_QUESTION)  result = dlg.ShowModal()  dlg.Destroy()
    wx.MessageDialog参数如下: 
    wx.MessageDialog(parent, message, caption="Message box", 
                     style=wx.OK | wx.CANCEL, pos=wx.DefaultPosition)  ShowModal()方法将对话框以模式框架的方式显示(还可以以Show()方法显示,但不会阻塞别的窗口相应用户事件)
    这意味着在对话框关闭之前,应用程序中的别的窗口不能响应用户事件。
    ShowModal()方法的返回值是一个整数,对于wx.MessageDialog,返回值是下面常量之一: 
    wx.ID_YES, wx.ID_NO, wx.ID_CANCEL, wx.ID_OK。
     
    2. 文本输入对话框
    如果你想从用户那里得到单独一行文本,你可能使用类wx.TextEntryDialog
    下面的片断创建了一个文本输入域,当用户单击OK按钮退出时,获得用户输入的值: 
     
    dlg = wx.TextEntryDialog(None, "Who is buried in Grant's tomb?",          'A Question', 'Cary Grant')  if dlg.ShowModal() == wx.ID_OK:      response = dlg.GetValue()  
    上面的wx.TextEntryDialog的参数按顺序说明是,
    父窗口,显示在窗口中的文本标签,
    窗口的标题(默认是“Please enter text”),
    输入域中的默认值。
    同样它也有一个样式参数,默认是wx.OK | wx.CANCEL。
    与wx.MessageDialog一样,ShowModal()方法返回所按下的按钮的ID。
    GetValue()方法得到用户输入在文本域中的值(这有一个相应的SetValue()方法让你可以改变文本域中的值)。
     
    3.从一个列表中选择
    你可以让用户只能从你所提供的列表中选择,你可以使用类wx.SingleChoiceDialog。下面是一个简单的用法:
    dlg = wx.SingleChoiceDialog(None,          'What version of Python are you using?',          'Single Choice',          ['1.5.2', '2.0', '2.1.3', '2.2', '2.3.1'],  if dlg.ShowModal() == wx.ID_OK:      response = dlg.GetStringSelection()
     
    wx.SingleChoiceDialog的参数类似于文本输入对话框,只是以字符串的列表代替了默认的字符串文本。
    要得到所选择的结果有两种方法,
    GetSelection()方法返回用户选项的索引,而GetStringSelection()返回实际所选的字符串。 
     

    4.标准文件对话框

    wx.FileDialog最重要的方法是它的构造器,语法如下:

    wx.FileDialog(parent, message="Choose a file",

    defaultDir="", defaultFile="", wildcard="*.*", style=0)

    表6.6对构造器的参数进行了说明。

    表6.6 wx.FileDialog构造器的参数

    parent:对话框的父窗口。如果没有父窗口则为None。

    message:message显示在对话框的标题栏中。

    defaultDir:当对话框打开时,默认的目录。如果为空,则为当前工作目录。

    defaultFile:当对话框打开时,默认选择的文件。如果为空,则没有文件被选择。

    wildcard:通配符。指定要选择的文件类型。

    格式是 display | wildcard 。可以指定多种类型的文件,

    例如:“Sketch files (*.sketch)|*.sketch|All files (*.*)|*.*”。

    style:样式。见下表6.7。

    表6.7 wx.FileDialog的样式

    wx.CHANGE_DIR:在用户选择了一个文件之后,当前工作目录相应改变到所选文件所在的目录。

    wx.MULTIPLE:仅适用于打开对话框。这个样式使得用户可以选择多个文件。

    wx.OPEN:这个样式用于打开一个文件。

    wx.OVERWRITE_PROMPT:仅适用于保存文件对话框。显示一个提示信息以确认是否覆盖一个已存在的文件。

    wx.SAVE:这个样式用于保存一个文件。

    要使用文件对话框,要对一个对话框实例调用ShowModal()方法。

    这个方法根据用户所敲击的对话框上的按钮来返回wx.ID_OK或wx.ID_CANCEL。

    选择之后。使用GetFilename(), GetDirectory(), 或GetPath()方法来获取数据。

    之后,调用Destroy()销毁对话框是一个好的观念。

    5.标准的颜色选择器

    我们可以使用wxPython提供的标准wx.ColourDialog

    这个对话框的用法类似于文件对话框。

    它的构造器只需要一个parent(双亲)和一个可选的数据属性参数。

    数据属性是一个wx.ColourData的实例,它存储与该对话框相关的一些数据,

    如用户选择的颜色,还有自定义的颜色的列表。

    使用数据属性使你能够在以后的应用中保持自定义颜色的一致性。

    dlg = wx.ColourDialog(self)
            dlg.GetColourData().SetChooseFull(True)
            if dlg.ShowModal() == wx.ID_OK:
                print dlg.GetColourData().GetColour()
            dlg.Destroy()

    颜色数据实例的SetChooseFull()方法告诉对话框去显示整个调色板,其中包括了自定义的颜色信息。

    对话框关闭后,我们根据得到的颜色来拾取颜色数据。颜色数据作为一个wx.Color的实例返回.

    6、文件夹选择对话框 

    1、文件保存对话框
    file_wildcard = "Paint files(*.paint)|*.paint|All files(*.*)|*.*" dlg = wx.FileDialog(self, "Save paint as ...", os.getcwd(), style = wx.SAVE | wx.OVERWRITE_PROMPT, wildcard = file_wildcard) if dlg.ShowModal() == wx.ID_OK: filename = dlg.GetPath() if not os.path.splitext(filename)[1]: #如果没有文件名后缀 filename = filename + '.paint' self.filename = filename self.SaveFile() self.SetTitle(self.title + '--' + self.filename) dlg.Destroy()

    2、打开文件对话框
     def OnOpen(self, event):
            '''
            打开开文件对话框
            '''
            file_wildcard = "Paint files(*.paint)|*.paint|All files(*.*)|*.*" 
            dlg = wx.FileDialog(self, "Open paint file...",
                                os.getcwd(), 
                                style = wx.OPEN,
                                wildcard = file_wildcard)
            if dlg.ShowModal() == wx.ID_OK:
                self.filename = dlg.GetPath()
                self.ReadFile()
                self.SetTitle(self.title + '--' + self.filename)
            dlg.Destroy()
  • 相关阅读:
    LLVM生成中间码以及汇编代码
    汇编知识
    delphi 连接 c++ builder 32 生成obj文件
    新知识
    Java的Guid生成
    sql:一对多【转载】
    关于使用js完成购物车计算时的一些问题。
    mysql多条件查询,当某个条件为空时忽略该条件,所有条件为空时查询全部
    转载:获取用户的真实ip地址
    ssh 报错hibernate java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to XXX
  • 原文地址:https://www.cnblogs.com/whwywzhj/p/6028748.html
Copyright © 2011-2022 走看看