我對wxpython和python本身很有新意,對於基本問題抱歉。使用wxpython綁定包
我試圖用更簡單的方式來組織我的代碼來管理它。我創建了這樣一個簡單的例子,恢復我的問題。基本上它只是一個帶有打印信息按鈕的窗口。我把它分成三個簡單的包:
ef_Main.py - 這是它將導入UI和應用程序本身的主包。
ef_Tool.py - 這是運行所有重要代碼的應用程序,現在它只是一個打印語句,但將包含所有應用程序代碼。
ef_UI.py - 一個非常基本的使用wxpython的界面。
它應該是如何工作的:
運行ef_Main.py將導入接口(ef_UI.py)和主代碼(ef_Tool.py)。當在界面上點擊某物時,ef_Main會準備好併發送給ef_Tool來執行。
我的問題是:
我不知道如何使用綁定功能,這三個包連接。我相信它應該在ef_Main中,但它將如何從接口獲取信息並將其發送到ef_Tool.py。
如果我想從ef_Tool獲得一些輸出並將其發送回界面。我應該怎麼做。
這是我的代碼。
#ef_Main.py
import wx
import ef_UI as eU
import ef_Tool as eT
''' Here is where I don't know how to make it works,
if I should put a class here or not, and how to bind
this function with the impTool and impUI'''
#class MyMain(self):
def uiControls(self):
self.Bind(wx.EVT_BUTTON, eU.OnClick(self), eT.MyTools(self))
def main():
app = wx.App(False)
frame = eU.MyFrame()
frame.Show()
app.MainLoop()
if __name__ == "__main__":
main()
=======================
#ef_Tool.py
import wx
'''just a simple as possible function to be execute when it is called '''
class MyTools():
def OnClick(self, event):
#Value = self.MyTextCtrl.GetValue()
print "it is working! "
============= ==========
#ef_UI.py
import wx
''' very simple interface with only a button and a TextCtrl '''
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="Menu Test")
self.panel = wx.Panel(self)
self.MyButton = wx.Button(self.panel, -1, "Button_test", (0, 0))
self.MyTextCtrl = wx.TextCtrl(self.panel, -1, value="just a test", pos=(100, 0))
在此先感謝!
Emerson
謝謝你,它完美的作品! – Emerson