2014-02-28 66 views
0

我是Python編程的新手。我有6-8個小型桌面應用程序,我想要使用GUI來編寫。我認爲自己很聰明,我會構建我的基本GUI外殼,然後將其導入到我的每個應用程序中。這樣他們都會有相同的外觀和感覺。另外,當我增強基本GUI包時,這些更改將流向我所有的小應用程序。Python 2.6:如何導入我編寫並使用它的類

我很難搞清楚如何正確導入然後引用GUI。下面是我的基本GUI包。之後,我會展示我所做的嘗試並導入它。它實際上是進口的,但我無法更改任何變量。我完全失去了。

如果有人可以指點我在正確的方向沒有太多的技術,我會很感激。我仍然對整個面向對象的事情感到困惑。

基地GUI包


# bsgui which stands for Base GUI is the basic GUI for starting new apps 
# 
# The variables are set up so you can edit them easily for your new 
# Application 

# Versioning 
var_Version = "1.00" 
var_Title = "bsgui Version: %s" % var_Version 
var_HelpAboutMbxTitle = "About bsgui" 
var_Menu_Custom = "XXXX" 
print ("Hello World") 

import wx 

# Create the Main window 

class cls_gui(wx.Frame): 

    def __init__(self,parent,id): 
    wx.Frame.__init__(self,parent,id, var_Title) 

# Add the panel to the frame 
    pnl_gui_main=wx.Panel(self) 

    # Menu Bar and structure 
    wig_menu_bar=wx.MenuBar() 

    # Create the File Menu Tree 
    mnu_File=wx.Menu() 
    wig_menu_bar.Append(mnu_File,"&File") 
    mnu_Edit=wx.Menu() 
    wig_menu_bar.Append(mnu_Edit, "&Edit") 
    mnu_Options=wx.Menu() 
    wig_menu_bar.Append(mnu_Options, "&Options") 
    mnu_Custom=wx.Menu() 
    wig_menu_bar.Append(mnu_Custom, var_Menu_Custom) 
    mnu_Tools=wx.Menu() 
    wig_menu_bar.Append(mnu_Tools, "&Tools") 
    mnu_Help=wx.Menu() 
    wig_menu_bar.Append(mnu_Help, "&Help") 

    # These are options under the File menubar option 
    printMI = mnu_File.Append(wx.NewId(), "&Print", "Print the current record") 
    exitMI = mnu_File.Append(wx.NewId(), "E&xit", "Exit the program") 
    self.Bind(wx.EVT_MENU, self.fcn_closebutton, exitMI) 

    # Help tree options 
    helpMI = mnu_Help.Append(wx.NewId(), "&About", "About the program") 
    self.Bind(wx.EVT_MENU, self.fcn_HelpAbout, helpMI) 


    # This statment makes the menubar appear 
    self.SetMenuBar(wig_menu_bar) 

    # Create the status bar in the bottom of the app 
    wig_status_bar=self.CreateStatusBar() 

    # Add a button to the panel 
    btn_exit=wx.Button(pnl_gui_main,label="Exit",pos=(5,575), 
          size=(50,30)) 
    self.Bind(wx.EVT_BUTTON, self.fcn_closebutton, btn_exit) 

    # Make the X button close when you click it 
    self.Bind(wx.EVT_CLOSE, self.fcn_closewindow) 

# This function closes the app when the button is clicked 
def fcn_closebutton(self,event): 
    self.Close(True) 

# This function displays the Help/About information 
def fcn_HelpAbout(self, event): 
    mbx_HelpAbout=wx.MessageDialog(None, var_Title, 
        var_HelpAboutMbxTitle,wx.OK) 
    mbx_HelpAbout_Answer=mbx_HelpAbout.ShowModal() 
    mbx_HelpAbout.Destroy() 

# This function closes the app when the X is clicked 
def fcn_closewindow(self, event): 
    self.Destroy() 

if __name__ == "__main__": 
    app = wx.PySimpleApp() #application object - runs your program 
    frame=cls_gui(parent=None,id=-1) #frame object - need a frame 
    frame.Show() 
    frame.Maximize() 
    app.MainLoop() # kicks off the program 

這是我如何得到bsgui導入和開放的,但不能訪問任何變量


import wx 
import bsgui 

# use the following 2 lines to see what path Python is using then any 
# you want to import needs to be put in one of the path folders. After 
# that you can use the import command. Python files should not include 
# the .py extension 

# import sys 
# print sys.path 


if __name__ == "__main__": 
    app = wx.PySimpleApp() #application object - runs your program 
    frame=bsgui.cls_gui(parent=None,id=-1) #frame object - need a frame 
    frame.Show() 
    frame.Maximize() 
    app.MainLoop() # kicks off the program 
+0

看起來你想製作一個MyGuiApp模塊? –

回答

3

這就是因爲你創建了局部變量。當函數/方法返回時,它們停止存在。如果你想讓它們持久化,那麼你需要將它們創建爲對象的屬性。

self.pnl_gui_main=wx.Panel(self) 
相關問題