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