xpython在Windos下的安装及简单的文本打开、保存
前几天写自动化部署脚本,用的是paramiko和shell相结合,paramiko可是实现ssh登录,文件及文件夹的上传下载,这些功能,然后一直想自己写个东西出来,于是就想把这些功能我把他放到图形化界面,于是这几天一直在看,昨天一直在纠结使用什么来写这个图形化界面,wxpython,tkinter??? 然后昨天下午看了一下午的tkinter,今天还是觉得使用wxpython,因为手头有一本python基础教程,上面刚好有wxpython的一些例子,今天早晨做公交都一直在纠结这个事情,现在不纠结了用什么了,开始纠结在windos下还是linux下来实现,想来想去,还是windos把,方便一点,但是个人还是喜欢linux系统,先下载安装wxpython,不得不说,下载安装都安装一上午了,原因有三,下载慢,然后下错版本了,然后就是总喜欢在做一件事情之前使劲的找资料,找来找去时间没了,什么都没找到,这个习惯得改!!!
1:安装wxpython第一坑
里面有很多的demo,值得研究
3:第一个实例
实现的效果如下:

代码:
#encoding=utf8
#第一个wxpython import wx app = wx.App() #实例化一个对象,然后使用它的构造函数,设置窗口的大小和标题
win = wx.Frame(None,title = "Wall",size = (420,335)) #创建两个按钮,也是使用构造函数进行自己的设置,label表示按钮的名字,pos表示位置,size表示按钮的大小
loadButton = wx.Button(win,label = "open",pos = (243,5), size = (80,25))
saveButton = wx.Button(win,label = "save",pos = (323,5), size = (80,25)) #创建两个文本框,是通过wx.TextCtrl来实现的,可是使用style参数来指定风格,wx.TE_MULTILINE表示文本框的垂直滚动条,wx.HSCROLL表示文本框的水平滚动条
filename = wx.TextCtrl(win,pos = (5,5),size = (210,25))
contents = wx.TextCtrl(win,pos = (5,35),size = (390,260), style = wx.TE_MULTILINE | wx.HSCROLL)
win.Show() app.MainLoop()
窗口(Window)也称为框架(Frame),是wx.Frame的实例
4:优化第三个,实现打开和保存文件
#encoding=utf8
#wxpython第二个例子,使用尺寸器,使用的是相对坐标,而不是绝对坐标 import wx def load(event):
file = open(filename.GetValue())
contents.SetValue(file.read())
file.close() def save(event):
file = open(filename.GetValue(),'w')
file.write(contents.GetValue())
file.close() app = wx.App()
win = wx.Frame(None,title = "Wall", size = (410,335))
bkg = wx.Panel(win) loadButton = wx.Button(bkg, label = 'Open')
loadButton.Bind(wx.EVT_BUTTON,load) saveButton = wx.Button(bkg, label = 'Save')
saveButton.Bind(wx.EVT_BUTTON,save) filename = wx.TextCtrl(bkg)
contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL) #wx.BoxSizer()默认为水平,proportion参数根据在窗口改变大小时所分配的空间设置比例
#flag=wx.LEFT,wx.RIGHT,wx.Top,wx.BOTTOM,wx.ALL表示的是边框参数,border是边框与其他的宽度值,结合起来就是那个边框与其他的值
#比如flag = wx.LEFT, border = 50 save按钮左边边框与前面的间隔为50,wx.EXPAND表示组件会扩展到所分配的空间中 hbox = wx.BoxSizer()
hbox.Add(filename, proportion = 1, flag = wx.EXPAND )
hbox.Add(loadButton, proportion = 0, flag = wx.LEFT, border = 5)
hbox.Add(saveButton, proportion = 0, flag = wx.LEFT, border = 5) #wx.BoxSizer(wx.VERTICAL)为垂直
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox,proportion = 0, flag = wx.EXPAND | wx.ALL, border = 5)
vbox.Add(contents, proportion = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT , border = 5
) bkg.SetSizer(vbox)
win.Show() app.MainLoop()
xpython在Windos下的安装及简单的文本打开、保存的更多相关文章
- memcache的windows下的安装和简单使用
原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...
- ubuntu16.04下docker安装和简单使用(转)
ubuntu16.04下docker安装和简单使用 转自:https://www.cnblogs.com/hupeng1234/p/9773770.html 前提条件 操作系统 docker-ce ...
- Redis、Redis+sentinel安装(Ubuntu 14.04下Redis安装及简单测试)
Ubuntu下Redis安装两种安装方式: 1.apt-get方式 步骤: 以root权限登录,切换到/usr目录下. 接下来输入命令,apt-get install redis-server,如图: ...
- windows下redis安装以及简单配置
1.下载redis 下载地址https://github.com/dmajkic/redis/downloads.有32bit和64bit根据自己需要选择就可以了. 2.安装redis 首先使用cmd ...
- ubuntu下minicom安装和简单设置使用
minicom是一个串口通信工具. Ubuntu下的安装: 打开终端 sudo apt-get install minicom即可完成安装. 简单设置使用: 安装完成后第一次启动时运行 sudo mi ...
- shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维
前言: linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^). 安装流程:*). 安装mysql-server1). 借助yum检索相 ...
- Linux下Libevent安装和简单实用
前言 Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相 ...
- Nginx在windows环境下的安装与简单配置
版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 下载并安装Nginx 去Nginx官网下载 我这里选取nginx/Windows-1.10.3版本,下载后解压出来即可,解压出来的路径不能含 ...
- Python:tesserocr 在 windows 下的安装及简单使用
tesserocr 是 python 的一个 OCR 库,它是对 tesseract 做的一层 Python API 封装,所以他的核心是tesseract. tesseract 的安装见 https ...
随机推荐
- Ceph常用命令
目录 [1.环境准备] [2.部署管理] [3.集群扩容] [4.用户管理] [5.密钥环管理] [6.块设备管理] [7.快照管理] [8.参考链接] 简要说明: 最近心血来潮,对分布式存储感兴趣, ...
- 算法笔记--极大极小搜索及alpha-beta剪枝
参考1:https://www.zhihu.com/question/27221568 参考2:https://blog.csdn.net/hzk_cpp/article/details/792757 ...
- input 标签的 disabled 和 readonly 属性
首先这两种属性都会使显示出来的文本框不能输入. disabled 属性:规定禁用 input 元素.被禁用的 input 元素既不可用,也不可点击和编辑,使用 tab 键时将会被跳过,用户的所有操作对 ...
- mongoose中connect()、createConnection()和connection的区别和作用
转文:原文 1 mongoose简介 在使用mongodb数据库开发项目中,nodejs环境下可能会使用到mongoose模块连接并操作mongodb数据库.mongoose模块相当于Java中的数据 ...
- Android studio 中,遇到报错:ERROR: x86_64 emulation currently requires hardware acceleration! CPU acceleration status:HAXM must be updated(version 1.1.1<6.0.1)的解决方法
在 Android SDK 的安装目录下找到intelhaxm-android.exe安装即可.忘记目录位置直接在“计算机”中搜索,如果没有,返回Android studio 的“设置”,找到 这个图 ...
- 洛谷P3225 HNOI2012 矿场搭建
题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之 ...
- zzw_rsync命令中的/的作用
[root@sv0379 rsync]# rsync -vzrtopg --password-file=/usr/local/rsync/rsync.passwd /opt/aspire/prod ...
- ie 下date对象
var t = '2014-02-26T21:18:02.497' var a = t.replace(/(\d{4})-(\d{2})-(\d{2})T(.*)?\.(.*)/, "$1/ ...
- python之函数入门
python之函数入门 一. 什么是函数 二. 函数定义, 函数名, 函数体以及函数的调用 三. 函数的返回值 四. 函数的参数 五.函数名->第一类对象 六.闭包 一,什么是函数 函数: 对代 ...
- Linux目录结构 重要目录结构详细
1.1 /etc/hosts ip地址与主机名(域名)的对应关系 解析主机名 ping www.baidu.com 解析成10.0.0.200 1.产品测试 2 用主机名互相访问 1.2 /et ...