• xpython在Windos下的安装及简单的文本打开、保存


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

    1:安装wxpython第一坑

     
     
        
          
         
         
         这里的32,64不是操作系统的位数,而是wxpython的位数
     
    2:demo下载
        

        里面有很多的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()
  • 相关阅读:
    IOC / AOP
    Volatile
    观察者模式
    Gang Of Four的23中设计模式
    适配器模式
    享元模式
    设计模式
    B树和B+树
    Java内存模型(JMM)
    【Java的IO流之文件字符输入输出流 25】
  • 原文地址:https://www.cnblogs.com/lemon-le/p/6773269.html
Copyright © 2020-2023  润新知