今回やること
今回はwxPythonでウィンドウを作成し、ファイルの内容をテキストボックスへ入れる方法を紹介します。ファイルを開くダイアログを利用し、それをテキストボックスに表示させるということなので、
メモ帳に近い感じがします。今回の記事は前につくった記事と組み合わせて使うと、結構本格的なものになるので、
まだ見ていない人はぜひ見ていってください!!
wxPythonでシンプルなメモ帳を作成する
ソースコード
import wx import sys class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,"ウィンドウタイトル",size=(500,300)) panel = wx.Panel(self,-1) self.textctrl = wx.TextCtrl(panel,-1,style=wx.TE_MULTILINE) sizer = wx.BoxSizer() sizer.Add(self.textctrl,1,wx.EXPAND) panel.SetSizer(sizer) MBar = wx.MenuBar() FileMenu = wx.Menu() FileMenu.Append(0,"開く") FileMenu.Append(1,"終了") MBar.Append(FileMenu,"ファイル") self.Bind(wx.EVT_MENU,self.SelectMenu) self.SetMenuBar(MBar) def SelectMenu(self,event): ID = event.GetId() if ID == 0: dialog = wx.FileDialog(self,"ファイルを選択",wildcard="テキスト形式|*.txt|すべての形式|*.*",style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) if dialog.ShowModal()==wx.ID_OK: path = dialog.GetPath() openfile = open(path,"r",encoding="UTF-8",errors="ignore") self.textctrl.SetValue(openfile.read()) openfile.close() elif ID == 1: sys.exit() app = wx.App(0) MyFrame().Show(True) app.MainLoop()
成功例
こんな感じで[開く]で選択したファイルに内容が表示されます
文字化けへの対処
このコードではBOM無しのUTF-8で開くようにしています。よって、それ以外の文字コードで保存されたファイルは文字化けされてしまいます。対処法として、文字コードを自動識別することがあげられます。文字コードを自動識別するための方法は結構前に投稿した記事にあります。
↓↓
Pythonでファイルを読み込む / 書き込む / エンコードを検出する
どうだったでしょうか。大事なことだったのでもう一度いいますね。
今回の記事は前につくった記事と組み合わせて使うと、結構本格的なものになるので、
まだ見ていない人はぜひ見ていってください!!
wxPythonでシンプルなメモ帳を作成する
動作環境:
Windows 10
64bit
Python 3.9.1
wxPython 4.1.1a1
コメント気軽にどうぞ!
0 件のコメント:
コメントを投稿