GUI界面操作-实现简单的记事本

本文介绍如何使用wxPython库编写简单的界面程序,包括导入包、定义应用程序类、初始化方法、实例化应用并进入主事件循环。通过实例演示了创建可响应事件的活的应用程序,涵盖从导入包到主事件循环的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

wxPython编写界面程序的基本流程:

1、import wx   #导入wxPython的包

2、class App(wx.App)   #子类化一个应用程序类

3、def onInit(self)  #定义应用程序类的初始化方法

4、app = App() #实例化一个应用程序类

5、app.MainLoop()  #进入这个应用程序的主事件循环

下面是一个例子:

import wx     #——对应第一步

 

class App(wx.App):          #——对应第二步

    def OnInit(self):    #——对应第三步

        frame = wx.Frame(parent = None, id = -1, title = 'Bare')

        frame.Show()    #默认参数为Trueframe.Show(True)

        return True     #这里一定要写return,否则就会一闪而过;return False的话会一闪而过,然后提示退出;因此要能够自主关闭,看到程序框架的话,必须得return True

       

 

app = App()              #——对应第四步 

app.MainLoop()       #——对应第五步

 

下面是一个实例(python基础教程第二版12章),但是不是以class的面向对象的形式来展现的,基本涵盖了一个可响应的活的应用程序的几个组成部分:

1、导入wxPython的包

2、定义一会需要用到的响应函数load和save

3、实例化一个应用程序类:如果app =wx.App()不生效或者有问题的话,可以使用app = wx.PySimpleApp()语句

4、定义frame

5、定义panel,将所需要的按钮、文本框等放到panel中

6、智能布局:使用BoxSizer() ,采用相对布局,将布局纳入到panel中

7、定义响应绑定事件(使用wxPython本身的响应函数,将具体需要操作的事件定义在事件函数中,绑定后即可通过相应操作,做出需要的响应

8、show出Frame

9、进入app应用程序的主事件循环

 1 # -*-coding:gb2312-*-
 2 
 3 #Function:第12章-图形用户界面,写一个记事本的简化程序
 4 #Author:LiXia
 5 #Version:V 1.0.0.1
 6 
 7 import wx
 8 
 9 def load(event):
10     file = open(filename.GetValue())
11     contents.SetValue(file.read())
12     file.close()
13     
14 def save(event):
15     file = open(filename.GetValue(), 'w')
16     file.write(contents.GetValue())
17     file.close()
18     
19 app = wx.App()
20 win = wx.Frame(None, id = -1, title = 'Simple Editor', size = (410, 335))
21 
22 bkg = wx.Panel(win)
23 
24 loadButton = wx.Button(bkg, label = 'Open')
25 loadButton.Bind(wx.EVT_BUTTON, load)
26 
27 saveButton = wx.Button(bkg, label = 'Save')
28 saveButton.Bind(wx.EVT_BUTTON, save)
29 
30 filename = wx.TextCtrl(bkg)
31 contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE|wx.HSCROLL)
32 
33 hbox = wx.BoxSizer()
34 hbox.Add(filename, proportion = 1, flag = wx.EXPAND)
35 hbox.Add(loadButton, proportion = 0, flag = wx.LEFT, border = 5)
36 hbox.Add(saveButton, proportion = 0, flag = wx.LEFT, border = 5)
37 
38 vbox = wx.BoxSizer(wx.VERTICAL)
39 vbox.Add(hbox, proportion = 0, flag = wx.EXPAND|wx.ALL, border = 5)
40 vbox.Add(contents, proportion = 1, flag = wx.EXPAND|wx.LEFT|wx.Bottom|wx.RIGHT, border = 5)
41 
42 bkg.SetSizer(vbox)
43 win.Show()
44 
45 app.MainLoop()

 

转载于:https://www.cnblogs.com/keke-xiaoxiami/p/3737171.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值