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()

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

    腾飞前的蛰伏
  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/xiaoli2018/p/4439351.html
Copyright © 2011-2022 走看看