亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:3日期: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 = ’打開(kāi)’,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、對(duì)窗口內(nèi)容進(jìn)行布局

import wxapp = wx.App()win = wx.Frame(None,title = '編輯器', size=(410,335))bkg = wx.Panel(win)loadButton = wx.Button(bkg, label = ’打開(kāi)’)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ù)語(yǔ)中,用戶執(zhí)行的動(dòng)作(比如 點(diǎn)擊按鈕)叫做事件。我們需要讓程序注意這些事件并且作出反應(yīng)。

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

loadButton.Bind(wx.EVT_BUTTON, load)

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

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

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

save函數(shù)和load類似,除了它需要寫(xiě)入(‘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 = ’打開(kāi)’)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)容擴(kuò)展:

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

* 它可以打開(kāi)給定文件名的文本文件;

* 它可以編輯文件文件

* 它可以保存文本文件

* 它可以正常退出程序

設(shè)置按鈕位置

import wxapp = wx.App()win = wx.Frame(None,title = '編輯器', size=(410,335))win.Show()loadButton = wx.Button(win, label = ’打開(kāi)’,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()

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

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产亚洲蜜芽精品久久 | 国产成人精品高清在线 | 欧美一级特黄aaaaaaa在线观看 | 日韩 欧美 亚洲国产 | 深夜爽爽爽gif福利免费 | 日本一极毛片兔费看 | 午夜羞羞影院 | 久久国产精品久久 | 香蕉 在线播放 | 国产百合一区二区三区 | 成年午夜性爽快免费视频不卡 | 欧美成视频人免费淫片 | 久久精品视香蕉蕉er大臿蕉 | 国产成人永久免费视 | 亚洲免费中字慕日产2021 | 国产v日韩v欧美v精品专区 | 天堂一区二区三区精品 | 日韩一区在线播放 | 野战好大好紧好爽视频 | 欧美在线一级毛片视频 | 免费无遮挡十八女禁污污网站 | 鲁大师视频在线www观看 | 美女久久久久久久久久久 | 亚洲精品中文字幕乱码一区二区 | 香蕉久久国产精品免 | a毛片在线免费观看 | 免费的很黄很色的床小视频 | 免费视频一级片 | 免费看黄网址 | 免费黄在线 | 五月天丁香花婷婷视频网 | 久久久久久久久综合影视网 | 成人免费视频一区 | 国产高清天干天天美女 | 乱人xxx国语对白91 | 爱爱插入视频 | 欧美午夜激情影院 | 亚欧毛片 | yy6080韩国日本三理论 | 国内精品视频 在线播放 | 91久久精品一区二区三区 |