zoukankan      html  css  js  c++  java
  • 利用wxpython编写GUI

      首先建立一个简单的布局合理的图形界面,但是其中按下按键没有事情发生

     1 #encoding=utf-8
     2 __author__ = 'heng'
     3 #编写一个GUI
     4 import wx
     5 app = wx.App()          #先创建一个图形界面
     6 win = wx.Frame(None,title = "simple editor",size = (500,500))     #title用于设置图形界面的标题,size是用来设置窗口的初始大小
     7 bkg = wx.Panel(win)            #利用Panel管理界面的布局
     8 saveButton = wx.Button(bkg,label = 'save')        #在画布bkg上设置标签为save的按键
     9 openButton = wx.Button(bkg,label = 'open')
    10 filename = wx.TextCtrl(bkg)                       #此函数用于在画布上建立一个文本的输入框
    11 contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL)      #在画布上建立可换行的文本输入框并且添加了滚动条
    12 #开始布局文本框,左右的布局
    13 hbox = wx.BoxSizer()             #开始添加尺寸器,默认为水平
    14 hbox.Add(filename,proportion = 1,flag = wx.EXPAND)      #proportion用于设置对象所占的比例,1代表占用剩下的额外空间的所有的空间,flag用来设置图标的属性,wx.EXPAND代表图标可扩展
    15 hbox.Add(saveButton,proportion = 0,flag = wx.LEFT,border = 5)          #代表距离左边界的距离为5个像素点(边缘的宽度,间隔)
    16 hbox.Add(openButton,proportion = 0,flag = wx.LEFT,border = 5)
    17 #开始上下的布局
    18 bbox = wx.BoxSizer(wx.VERTICAL)          #上下的布局,垂直的布局
    19 bbox.Add(hbox,proportion = 0,flag = wx.EXPAND | wx.ALL,border = 5)
    20 bbox.Add(contents,proportion = 1,flag = wx.EXPAND| wx.LEFT|wx.RIGHT|wx.BOTTOM,border = 5)
    21 
    22 bkg.SetSizer(bbox)
    23 win.Show()
    24 app.MainLoop()

    下面建立一个可以处理按键事件的图形界面

     1 #encoding=utf-8
     2 __author__ = 'heng'
     3 #编写一个GUI
     4 import wx
     5 #添加按键的事件
     6 def load(event):
     7     file = open(filename.GetValue())     #打开小的文本框中的文件
     8     contents.SetValue(file.read())        #读取文本的信息
     9     file.close()
    10 def save(event):
    11     file = open(filename.GetValue(),'w')
    12     file.write(contents.GetValue())
    13     file.close()
    14 
    15 app = wx.App()          #先创建一个图形界面
    16 win = wx.Frame(None,title = "simple editor",size = (500,500))     #title用于设置图形界面的标题,size是用来设置窗口的初始大小
    17 bkg = wx.Panel(win)            #利用Panel管理界面的布局
    18 saveButton = wx.Button(bkg,label = 'save')        #在画布bkg上设置标签为save的按键
    19 saveButton.Bind(wx.EVT_BUTTON,save)               #将save的事件处理绑定到按键上
    20 openButton = wx.Button(bkg,label = 'open')
    21 openButton.Bind(wx.EVT_BUTTON,load)
    22 filename = wx.TextCtrl(bkg)                       #此函数用于在画布上建立一个文本的输入框
    23 contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL)      #在画布上建立可换行的文本输入框并且添加了滚动条
    24 #开始布局文本框,左右的布局
    25 hbox = wx.BoxSizer()             #开始添加尺寸器,默认为水平
    26 hbox.Add(filename,proportion = 1,flag = wx.EXPAND)      #proportion用于设置对象所占的比例,1代表占用剩下的额外空间的所有的空间,flag用来设置图标的属性,wx.EXPAND代表图标可扩展
    27 hbox.Add(saveButton,proportion = 0,flag = wx.LEFT,border = 5)          #代表距离左边界的距离为5个像素点(边缘的宽度,间隔)
    28 hbox.Add(openButton,proportion = 0,flag = wx.LEFT,border = 5)
    29 #开始上下的布局
    30 bbox = wx.BoxSizer(wx.VERTICAL)          #上下的布局,垂直的布局
    31 bbox.Add(hbox,proportion = 0,flag = wx.EXPAND | wx.ALL,border = 5)
    32 bbox.Add(contents,proportion = 1,flag = wx.EXPAND| wx.LEFT|wx.RIGHT|wx.BOTTOM,border = 5)
    33 
    34 bkg.SetSizer(bbox)
    35 win.Show()
    36 app.MainLoop()

    上面的代码中添加了处理事件的函数,可以将函数绑定到对应的按键上去。本事件用到了对文件的读写的操作。

    腾飞前的蛰伏
  • 相关阅读:
    Revit API改变风管及管件尺寸
    Revit API注册事件
    Revit API创建标高,单位转换
    Revit API判断直线相交关系移动风管
    Revit MEP API找到连接器连接的连接器
    Revit MEP API连接器类别
    AngularJS如何编译和呈现页面
    AngularJS自定义Directive初体验
    Webpack基本用法
    对一个前端AngularJS,后端OData,ASP.NET Web API案例的理解
  • 原文地址:https://www.cnblogs.com/xiaoli2018/p/4439351.html
Copyright © 2011-2022 走看看