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()
wxpython 对话框的更多相关文章
- wxPython 对话框关闭后进程无法退出的原因
wxPython中不要用对话框作为主程序wx.Dialog,这会导致程序关闭后进程无法退出.一种可行的做法是用wx.Frame代替
- wxPython Modal Dialog 模式对话框
<wxPython in Action>chap 9 笔记 1. Modal Dialog(模式对话框) A modal dialog blocks other widgets from ...
- [Python] wxPython 状态栏组件、消息对话框组件 学习总结(原创)
1.状态栏组件 1.基本介绍 上图: 红框框内的就是状态栏. 他可以分成若干个区块,比如上者分为了两个区块,并且比例是固定的,创建时可以指定 每个区块都能够显示 信息,一般通过 绑定事件 实时更新 各 ...
- [Python][小知识][NO.4] wxPython 字体选择对话框(O.O 不知道放到那里就放到这个分类的)
1.前言 O.O 前两天回家浪了两天,断更了 哎~~~ o.o 有时候,有木有想改标签或编辑框中内容的字体呀?(o.o 反正我是没有). wxpython也可以说是所在的操作系统,有字体选择器,给我们 ...
- 【Python】 用户图形界面GUI wxpython IV 菜单&对话框
更多组件 ■ 菜单栏 Menu 菜单是很多GUI必不可少的一部分.要建立菜单,必须先创建菜单栏: menuBar = MenuBar() menu = Menu() item1 = menu.Appe ...
- wxPython:文本对话框TextEntryDialog
wxTextEntryDialog(wxWindow* parent, const wxString& message, const wxString& caption = " ...
- wxPython:消息对话框MessageDialog
wxMessageDialog(wxWindow* parent, const wxString& message, const wxString& caption = "M ...
- wxPYTHON图形化软件开发(一)---LOMO工具箱
最近学了wxPYTHON,这次就做了一个工具箱软件练手,软件主要是包含各种小工具,目前想到的有密码管理器,日记本,记账本,今天还看到一个网页浏览器,也可能加进来.目前实现的是密码管理器 软件GUI部分 ...
- 移动端自动化环境搭建-wxpython的安装
安装wxpython A.安装依赖 wxPython 是 Python 非常有名的一个 GUI 库,因为 RIDE 是基于这个库开发的,所以这个必须安装. B.安装过程 下载地址:http://www ...
随机推荐
- 【转】xml文件中加入本地的dtd约束文件
首先,我是以加载Struts2的来演示: 1 我们可以看到,越是文件中的 显示的是PUBLIC, 即从网络中获取约束文件dtd ,此时我需要将其配置成从自己的本地来获取dit文件 首先,先要有stru ...
- PHP 实时生成并下载超大数据量的 Excel 文件
//另外由于excel数据是从数据库里逐步读出然后写入输出流的所以需要将PHP的执行时间设长一点 //(默认30秒)set_time_limit(0)不对PHP执行时间做限制. set_time_li ...
- C++_代码重用3-私有继承
使用包含:易于理解,类声明中包含表示被包含类的显式命名对象,代码可以通过名称引用这些对象: 使用继承:将使关系更抽象,且继承会引起很多问题,尤其是从多个基类继承时. 私有继承所提供的特性确实比包含多. ...
- 116th LeetCode Weekly Contest N-Repeated Element in Size 2N Array
In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeate ...
- POJ - 1061 扩展gcd
题意:求\((n-m)t+Lk=x-y\)的解\(t\) #include<iostream> #include<algorithm> #include<cstdio&g ...
- javascript的Astar版 寻路算法
去年做一个模仿保卫萝卜的塔防游戏的时候,自己写的,游戏框架用的是coco2d-html5 实现原理可以参考 http://www.cnblogs.com/technology/archive/2011 ...
- JavaEE 数据库随机值插入测试
package com.jery.javaee.dbtest; import java.sql.Connection; import java.sql.DriverManager; import ja ...
- PIE SDK矢量自定义渲染
1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...
- 附3:tips of layout binding and styling
1. how to clear content of ng-model in controller? 如何在conroller中清除ng-model绑定的内容? .state('tab.login', ...
- 在Unity中创建攻击Slot系统
http://www.manew.com/thread-109310-1-1.html 马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?注册帐号 ...