中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

wxpython快速入門

發布時間:2020-07-13 13:36:16 來源:網絡 閱讀:404 作者:NewFate1 欄目:編程語言

1 第一個應用程序 “Hello,world”

1 import wx
2 app = wx.App(False)
3 frame = wx.Frame(None, wx.ID_ANY, "Hollo World")
4 frame.Show(True)
5 app.MainLoop()

2是創造一個wx.App實例。參數是“False”的意思是不將stdout和stderr重定向到一個窗口,這個參數是“True”對這個例子沒有影響。
3創建一個頂級窗口,語法為x.Frame(parent,ID,標題)。這個例子中wx.ID_ANY wxWidgets為我們挑選一個id。
4顯示窗口
5主循環,處理事件

2輸入多行文字wx.TextCtrl

import wx
class my_frame(wx.Frame):
   """We simple derive a new class of Frame"""
   def __init__(self,parent, title):
       wx.Frame.__init__(self, parent, title=title,size=(300,100))
       self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
       self.Show(True)

app = wx.App(False)
frame = my_frame (None,'Small edior')
app.MainLoop()

繼承來自wx.Frame的__init__方法。聲明一個wx.TextCtrl控件
(簡單的文本編輯控件)

3增加一個菜單

import wx
class my_frame(wx.Frame):
   """We simple derive a new class of Frame"""
   def __init__(self,parent, title):
       wx.Frame.__init__(self, parent, title=title,size=(300,200))
       self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE,)
       self.Show(True)
       self.CreateStatusBar()#創建窗口底部的狀態欄
       filemenu = wx.Menu()
       filemenu.Append(wx.ID_EXIT, "Exit", "Termanate the program")
       filemenu.AppendSeparator()
       filemenu.Append(wx.ID_ABOUT, "About", "Information about this program")#設置菜單的內容
       menuBar = wx.MenuBar()
       menuBar.Append(filemenu, u"設置")
       self.SetMenuBar(menuBar)#創建菜單條
       self.Show(True)

app = wx.App(False)
frame = my_frame(None, 'Small edior')
app.MainLoop()

wx.ID_ABOUT和wx.id_EXIT這是標準wxWidgets提供的id,這樣做的好處是可以保證兼容性,多個平臺可以運行

4事件處理

import wx
class my_frame(wx.Frame):
   """We simple derive a new class of Frame"""
   def __init__(self,parent, title):
       wx.Frame.__init__(self, parent, title=title,size=(300,200))
       self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE,)
       self.Show(True)
       self.CreateStatusBar()#創建窗口底部的狀態欄

       filemenu = wx.Menu()
       menu_exit = filemenu.Append(wx.ID_EXIT, "Exit", "Termanate the program")
       filemenu.AppendSeparator()
       menu_about = filemenu.Append(wx.ID_ABOUT, "About", "Information about this program")#設置菜單的內容

       menuBar = wx.MenuBar()
       menuBar.Append(filemenu, u"設置")
       self.SetMenuBar(menuBar)#創建菜單條
       self.Show(True)

       self.Bind(wx.EVT_MENU, self.on_about, menu_about)
       self.Bind(wx.EVT_MENU, self.on_exit, menu_exit)#把出現的事件,同需要處理的函數連接起來

   def on_about(self,e):#about按鈕的處理函數
       dlg = wx.MessageDialog(self,"A samll text editor", "About sample Editor",wx.OK)#創建一個對話框,有一個ok的按鈕
       dlg.ShowModal()#顯示對話框
       dlg.Destroy()#完成后,銷毀它。

   def on_exit(self,e):
       self.Close(True)


app = wx.App(False)
frame = my_frame(None, 'Small edior')
app.MainLoop()

第一步是設定事件,然后設定事件出現后應該執行什么操作,最后把事件和操作連接起來。

5彈出對話框,選擇要編輯的文件

def on_open(self,e):
       """open a file"""
       self.dirname = ''
       dlg = wx.FileDialog(self,"Choose a file", self.dirname, "","*.*",wx.OPEN)#調用一個函數打開對話框
       if dlg.ShowModal() == wx.ID_OK:
           self.filename = dlg.GetFilename()
           self.dirname = dlg.GetDirectory()
           f = open(os.path.join(self.dirname,self.filename),"r")
       dlg.Destroy()

然后把這個方法和添加進入菜單和一個按鈕事件綁定起來
完整代碼

import wx
import os
class my_frame(wx.Frame):
   """This is a simple text editor"""
   def __init__(self,parent, title):
       wx.Frame.__init__(self, parent, title=title,size=(300,200))
       self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE,)
       self.Show(True)
       self.CreateStatusBar()#創建窗口底部的狀態欄

       filemenu = wx.Menu()
       menu_open = filemenu.Append(wx.ID_OPEN,U"打開文件", " ")
       menu_exit = filemenu.Append(wx.ID_EXIT, "Exit", "Termanate the program")
       filemenu.AppendSeparator()
       menu_about = filemenu.Append(wx.ID_ABOUT, "About", "Information about this program")#設置菜單的內容

       menuBar = wx.MenuBar()
       menuBar.Append(filemenu, u"設置")
       self.SetMenuBar(menuBar)#創建菜單條
       self.Show(True)

       self.Bind(wx.EVT_MENU,self.on_open,menu_open)
       self.Bind(wx.EVT_MENU, self.on_about, menu_about)
       self.Bind(wx.EVT_MENU, self.on_exit, menu_exit)#把出現的事件,同需要處理的函數連接起來

   def on_about(self,e):#about按鈕的處理函數
       dlg = wx.MessageDialog(self,"A samll text editor", "About sample Editor",wx.OK)#創建一個對話框,有一個ok的按鈕
       dlg.ShowModal()#顯示對話框
       dlg.Destroy()#完成后,銷毀它。

   def on_exit(self,e):
       self.Close(True)    def on_open(self,e):
       """open a file"""
       self.dirname = ''
       dlg = wx.FileDialog(self,"Choose a file", self.dirname, "","*.*",wx.OPEN)#調用一個函數打開對話框
       if dlg.ShowModal() == wx.ID_OK:
           self.filename = dlg.GetFilename()
           self.dirname = dlg.GetDirectory()
           f = open(os.path.join(self.dirname,self.filename),"r")
       dlg.Destroy()


app = wx.App(False)
frame = my_frame(None, 'Small edior')
app.MainLoop()

6.把文件讀取出來的數據,顯示在文本框內。并加入保存文件的功能。打開文件時使用decode(),保存時使用encode(),使用unicode防止因為中文出現的錯誤。

# -*- coding: utf-8 -*-
import wximport os
class my_frame(wx.Frame):
   """This is a simple text editor"""
   def __init__(self,parent, title):
       wx.Frame.__init__(self, parent, title=title,size=(300,200))
       self.control = wx.TextCtrl(self, -1,u"請先打開要修改的文件", style=wx.TE_MULTILINE,)
       self.Show(True)
       self.CreateStatusBar()#創建窗口底部的狀態欄

       filemenu = wx.Menu()
       menu_open = filemenu.Append(wx.ID_OPEN, U"打開文件", " ")
       menu_save = filemenu.Append(wx.ID_SAVE, U"保存修改",)
       menu_exit = filemenu.Append(wx.ID_EXIT, "Exit", "Termanate the program")
       filemenu.AppendSeparator()
       menu_about = filemenu.Append(wx.ID_ABOUT, "About", "Information about this program")#設置菜單的內容

       menuBar = wx.MenuBar()
       menuBar.Append(filemenu, u"選項")
       self.SetMenuBar(menuBar)#創建菜單條
       self.Show(True)

       self.Bind(wx.EVT_MENU, self.on_open, menu_open)
       self.Bind(wx.EVT_MENU, self.on_about, menu_about)
       self.Bind(wx.EVT_MENU, self.on_exit, menu_exit)#把出現的事件,同需要處理的函數連接起來
       self.Bind(wx.EVT_MENU, self.on_save, menu_save)    def on_about(self,e):#about按鈕的處理函數
       dlg = wx.MessageDialog(self,"A samll text editor", "About sample Editor",wx.OK)#創建一個對話框,有一個ok的按鈕
       dlg.ShowModal()#顯示對話框
       dlg.Destroy()#完成后,銷毀它。

   def on_exit(self,e):
       self.Close(True)    def on_open(self,e):
       """open a file"""
       self.dirname = ''
       dlg = wx.FileDialog(self,"Choose a file", self.dirname, "","*.*",wx.OPEN)#調用一個函數打開對話框
       if dlg.ShowModal() == wx.ID_OK:
           self.filename = dlg.GetFilename()
           self.dirname = dlg.GetDirectory()
           self.address = os.path.join(self.dirname,self.filename)
           f = open(self.address,"r")
           file = (f.read()).decode(encoding='utf-8')#解碼,使文件可以讀取中文
           f.close()
           self.control.Clear()
           self.control.AppendText(file)#把打開的文件內容顯示在多行文本框內
       dlg.Destroy()    def on_save(self, e):
       date = (self.control.GetValue()).encode(encoding="utf-8")#編碼,使中文可以正確存儲
       f = open(self.address, 'w')
       f.write(date)
       f.close()#把文本框內的數據寫入并關閉文件
       dlg = wx.MessageDialog(self, u"文件已經成功保存", u"消息提示", wx.OK)
       dlg.ShowModal()
       dlg.Destroy()
       self.control.Clear()
       self.control.AppendText(u'歡迎使用此軟件,作者即刻')

app = wx.App(False)
frame = my_frame(None, u'迷你文本編輯器')
app.MainLoop()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡水市| 克山县| 赞皇县| 延吉市| 青河县| 远安县| 郯城县| 平顺县| 吐鲁番市| 尼勒克县| 温宿县| 新津县| 安福县| 庆元县| 青神县| 鄂托克前旗| 定日县| 饶阳县| 泗水县| 天柱县| 青龙| 葫芦岛市| 余干县| 海口市| 吴旗县| 图片| 呼和浩特市| 罗定市| 甘谷县| 稷山县| 武宁县| 达拉特旗| 门源| 历史| 弥渡县| 始兴县| 天台县| 紫阳县| 宁化县| 阿荣旗| 宜都市|