Home>Python Tips>

簡易メモ帳

更新日:2003/08/11

Python for .NETのPreview2リリース記念に作った簡易メモ帳です。単純なのでPythonから.NETを使う取っかかりになると思います。Pythonと.NETの組み合わせは非常に期待が持てそうです。


notepad.py

from CLR.System.Windows.Forms import Form,MainMenu,MenuItem,TextBox,OpenFileDialog,SaveFileDialog,DialogResult,Application,AnchorStyles,ScrollBars
from CLR.System.Drawing import Point,Size

class MyForm(Form):
	def __init__(self):
		self.mainMenu = MainMenu()
		self.menuItem1 = MenuItem()
		self.menuItem2 = MenuItem()
		self.menuItem3 = MenuItem()
		self.menuItem4 = MenuItem()
		self.menuItem5 = MenuItem()
		self.textBox = TextBox()
		self.SuspendLayout()

		self.mainMenu.MenuItems.Add(self.menuItem1)
		
		self.menuItem1.Index = 0
		self.menuItem1.MenuItems.Add(self.menuItem2)
		self.menuItem1.MenuItems.Add(self.menuItem3)
		self.menuItem1.MenuItems.Add(self.menuItem4)
		self.menuItem1.MenuItems.Add(self.menuItem5)
		self.menuItem1.Text = 'ファイル(&F)'

		self.menuItem2.Index = 0
		self.menuItem2.Text = '開く...(&O)'
		self.menuItem2.Click += self.open_file_handler

		self.menuItem3.Index = 1
		self.menuItem3.Text = '名前を付けて保存(&A)...'
		self.menuItem3.Click += self.save_file_handler

		self.menuItem4.Index = 2
		self.menuItem4.Text = '-' 

		self.menuItem5.Index = 3
		self.menuItem5.Text = '終了(&X)'
		self.menuItem5.Click += self.exit_app_handler

		self.textBox.Anchor = AnchorStyles.Top|AnchorStyles.Bottom|AnchorStyles.Left|AnchorStyles.Right

		self.textBox.Location = Point(0, 0)
		self.textBox.Multiline = True
		self.textBox.Name = 'textBox'
		self.textBox.ScrollBars = ScrollBars.Vertical
		self.textBox.Size = Size(297, 272)
		self.textBox.TabIndex = 0
		self.textBox.Text = ''
		
		self.AutoScaleBaseSize = Size(5, 12)
		self.ClientSize = Size(292, 266)
		self.Controls.Add(self.textBox)
		self.Menu = self.mainMenu
		self.Name = 'MyForm'
		self.Text = 'PyNotepad'
		self.ResumeLayout(False)

	def open_file_handler(self, sender, args):
		dlg = OpenFileDialog()
		dlg.DefaultExt = 'txt'
		dlg.FileName = '*.txt'
		dlg.Filter='テキスト文書(*.txt)|*.txt'
		if dlg.ShowDialog() == DialogResult.OK:
			f = open(dlg.FileName)
			self.textBox.Text = f.read().replace('\n', '\r\n')
			
	def save_file_handler(self, sender, args):
		dlg = SaveFileDialog()
		dlg.DefaultExt = 'txt'
		dlg.FileName = '*.txt'
		dlg.Filter='テキスト文書(*.txt)|*.txt'
		if dlg.ShowDialog() == DialogResult.OK:
			f = open(dlg.FileName, 'w')
			f.write(self.textBox.Text)
			
	def exit_app_handler(self, sender, args):
		Application.Exit()

if __name__ == '__main__':
	Application.Run(MyForm())

# vim:set ts=4 sts=4 sw=4:
		

Home>Python Tips>