python 初心者です。
半年前から本やインターネットで勉強し断片的ですが
希望する動作を確認できるまでになったところです。
今度は断片的なソフトを集めて総合アプリを考えており、主メニュー画面から
各ソフトを起動してみたいと考えGUIで、wxpython を勉強中ですが問題にぶつかりました。
【発生している問題】
A画面で数字を入力するのに、付箋画面Bを立ち上げ内容を確認できるようにしたいのですが
A画面から B画面 立ち上げるイベント処理 はうまくいきますが
A画面から B画面を閉じるイベント処理ができません。
*・B画面のパラメータからは閉じることができます。
*・A画面を閉じるとB画面も閉じます。
【 該当のソースコードをテスト版で作りました】
#!/usr/bin/env python
#-- coding:utf-8 --
import wx
class ChildFrame(wx.Frame):
def init(self,parent):
wx.Frame.init(self,parent,wx.ID_ANY,"child frame",pos=(100,100))
pane2 = wx.Panel(self) self.exitBtn = wx.Button(pane2,label="閉じる",pos=(100,10)) self.Bind(wx.EVT_BUTTON,self.exit2,self.exitBtn) def exit2(self,event): self.Close(True) #ここでは子の画面は閉じる
class MyWindow(wx.Frame):
def init(self,parent,id):
wx.Frame.init(self,parent,wx.ID_ANY,"main frame")
panel = wx.Panel(self)
self.showChildBtn = wx.Button(panel,label="show child",pos=(10,10))
self.exitBtn = wx.Button(panel,label="exit",pos=(100,10))
self.Bind(wx.EVT_BUTTON,self.showChild,self.showChildBtn)
self.Bind(wx.EVT_BUTTON,self.exit,self.exitBtn)
def showChild(self,event): childFrame = ChildFrame(self) childID = childFrame.Show() #子の画面が開く return True def exit(self,event ): childFrame = ChildFrame(self) childFrame.Close(True) #子の画面が閉じない、エラーコメントもない
if name == 'main':
app = wx.PySimpleApp()
frame = MyWindow(parent=None,id=-1)
frame.Show()
app.MainLoop()
本当はB画面ソフトはモジュール化で別に置いておきたいですが、まだそのレベルでないようです。
できればモジュール化の場合には注意する点が有ればご指導お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/22 10:10
2018/07/22 10:16