电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python如何用wx模塊創(chuàng)建文本編輯器

瀏覽:4日期:2022-07-22 13:29:06

用Python的wx模塊創(chuàng)建文本編輯器的方法:

1、設(shè)置按鈕的位置

import wxapp = wx.App()win = wx.Frame(None,title = '編輯器', size=(410,335))win.Show()loadButton = wx.Button(win, label = ’打開’,pos = (225,5),size = (80,25))saveButton = wx.Button(win, label = ’保存’,pos = (315,5),size = (80,25))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)app.MainLoop()

2、對窗口內(nèi)容進行布局

import wxapp = wx.App()win = wx.Frame(None,title = '編輯器', size=(410,335))bkg = wx.Panel(win)loadButton = wx.Button(bkg, label = ’打開’)saveButton = wx.Button(bkg, label = ’保存’)filename = wx.TextCtrl(bkg)contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE | wx.HSCROLL)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)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()

3、添加事件處理函數(shù)

在GUI術(shù)語中,用戶執(zhí)行的動作(比如 點擊按鈕)叫做事件。我們需要讓程序注意這些事件并且作出反應(yīng)。

假設(shè)寫了一個負責(zé)打開文件的函數(shù),并將其命令為load ,然后就可以像下面這樣將函數(shù)作為loadButton的事件處理函數(shù):

loadButton.Bind(wx.EVT_BUTTON, load)

讓我們來完成剩下的工作,現(xiàn)在需要的就是兩個事件處理函數(shù):load(打開)和save(保存)。當(dāng)事件被調(diào)用時,它會收到一個事件對象作為它唯一的參數(shù),其中包括發(fā)生了什么事情的信息,但是在這里可以忽略這方法的事情,因為程序只關(guān)心點擊時發(fā)生的事情。

def load(event): file = open(filename.GetValue()) contents.SetValue(file.read()) file.close()

文件名使用filename對象GetValue方法獲取。為了將文本引入文本區(qū),只要使用contents.SetValue即可。

save函數(shù)和load類似,除了它需要寫入(‘w’),以及用于文件處理部分的write方法,GetValue用于從文本區(qū)獲得信息。

def save(event): file = open(filename.GetValue(),’w’) file.write(contents.GetValue()) file.close()

完整代碼如下:

import wxdef 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 = '編輯器', size=(410,335))bkg = wx.Panel(win)loadButton = wx.Button(bkg, label = ’打開’)loadButton.Bind(wx.EVT_BUTTON,load)saveButton = wx.Button(bkg, label = ’保存’)saveButton.Bind(wx.EVT_BUTTON,save)filename = wx.TextCtrl(bkg)contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE | wx.HSCROLL)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)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()

執(zhí)行結(jié)果如下:

Python如何用wx模塊創(chuàng)建文本編輯器

內(nèi)容擴展:

我們來創(chuàng)建一個文本編輯器,功能要求如下:

* 它可以打開給定文件名的文本文件;

* 它可以編輯文件文件

* 它可以保存文本文件

* 它可以正常退出程序

設(shè)置按鈕位置

import wxapp = wx.App()win = wx.Frame(None,title = '編輯器', size=(410,335))win.Show()loadButton = wx.Button(win, label = ’打開’,pos = (225,5),size = (80,25))saveButton = wx.Button(win, label = ’保存’,pos = (315,5),size = (80,25))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)app.MainLoop()

這里可能需要注意的是,控件(按鈕,輸入框)的位置和尺寸,位置和尺寸都包括一對數(shù)值:位置包括x 和y坐標(biāo),而尺寸包括寬和高。

代碼比較簡單,按鈕控件(打開、保存)就不解釋了。需要注意的是文本控件,默認的文本框(text field)就是一行可編譯的文本,沒有滾動條,為了創(chuàng)建文本區(qū)(text area)只要使用style參數(shù)調(diào)整風(fēng)格,style 參數(shù)的值實際上是個整數(shù),但不用直接指定,可以使用按位或運算符OR聯(lián)合了wx.TE_MULTILINE來獲取多行文件區(qū),以及 wx.HSCROLL來獲取水平滾動條。

到此這篇關(guān)于Python如何用wx模塊創(chuàng)建文本編輯器的文章就介紹到這了,更多相關(guān)Python的wx模塊創(chuàng)建文本編輯器方法內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 心得体会网_心得体会格式范文模板 | 丝印油墨_水性油墨_环保油墨油漆厂家_37国际化工 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家| PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 服务器之家 - 专注于服务器技术及软件下载分享 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 玄米影院| 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 杭州公司变更法人-代理记账收费价格-公司注销代办_杭州福道财务管理咨询有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 南京欧陆电气股份有限公司-风力发电机官网 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 |