1樓:
我覺得大概有這麼幾種辦法。
最簡單的一種是給subFrame的建構函式新增乙個引數:
class
subframe(wx
.Frame
):def
__init__
(self
,parent
):self
.parent
=parent
# ...
class
mainframe(wx
.Frame
):def
open_subframe
(self
,event
):subframe
(self).
Show
()return
True
這樣就可以在subframe.send_message的時候直接呼叫mainFrame.get_message
class
subframe(wx
.Frame
):def
send_message
(self
,event
):if
notself
.message_box
.GetValue
():wx
.MessageBox
("please input something!"
,"error!"*3
)else
:self
.parent
.get_message
(self
.message_box
.GetValue
())考慮到重用的話另外一種方法是可以自己實現乙個類似於訊息佇列的類:
class
MsgQueue
:def
__init__
(self
):self
.messageBoxes={}
defregisterCallback
(self
,identifer
,callback
):try
:self
.messageBoxes
[identifer].
(callback
)except
KeyError
:self
.messageBoxes
[identifer]=
self
.messageBoxes
[identifer].
(callback
)def
sendMsg
(self
,identifer
,msg
):for
callback
inself
.messageBoxes
[identifer
]:callback
(msg
)像這樣做乙個中轉
此外還有比較猥瑣的利用wx自己的事件機制,選乙個不常用的事件,把它作為訊息處理事件來用。不過不推薦就是了。不知道wx可不可以自定義事件,我印象中好像是不可以,如果可以的話可以試試用自定義事件來解決這個問題。以上。
python怎麼求乙個函式的最值
意群 我來舉個窮舉法的例子。函式的功能為 x 2 def multi x y x 2 return y step 為嘗試的步進值 def find func,min max step 0.01 i min while min 執行結果如下 i1 func i 1 i0.99 func i 0.980...
python中,例項化乙個類,和繼承乙個類,都適用什麼場景,有什麼場景就只能用其一麼?
Annie拉拉 例項化是用到了類的封裝特性,例項化後就可以復用裡面的某個方法,而不必自己重複造輪子。繼承是用到類的繼承特性,創造類很大程度是為了繼承,此時呼叫的是類裡面幾乎所有方法 可以改寫 多型 類本身封裝的屬性和方法都是有關聯甚至有步驟的,指向更龐大的特性和功能,封裝層次越高復用性越低,所以類的...
有的python內建函式怎麼就乙個pass
劉志軍 當你寫乙個函式或者在類裡面寫方法時,如果你暫時還沒想好怎麼實現,可以暫時用乙個pass來代替 class Person def eat self pass defcry self print I m crying 如果你什麼都不寫的話,就會報錯 IndentationError expect...