使用 wxFormBuiler 做wxPython UI

 

如上图,使用wxFormBulider 实现的简单的图形界面,又是拖控件啊,然后 直接查看python代码, 拿出来 几乎不用修改就可以直接运行。贴一段用wxFormBulider 实现的ui

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Oct  8 2012)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc
import sys
import os

###########################################################################
## Class MyFrame2
###########################################################################

class MyFrame2 ( wx.Frame ):
	
	def __init__( self ):
		wx.Frame.__init__ ( self, None, id = wx.ID_ANY, title = u"wo cao ", pos = wx.DefaultPosition, size = wx.Size( 502,644 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		
		bSizer3 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_panel4 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
		self.m_panel4.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_ACTIVEBORDER ) )
		
		bSizer4 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_static_fileName = wx.StaticText( self.m_panel4, wx.ID_ANY, u"未打开文件", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_static_fileName.Wrap( -1 )
		bSizer4.Add( self.m_static_fileName, 0, wx.ALL|wx.EXPAND, 5 )
		
		self.m_staticline1 = wx.StaticLine( self.m_panel4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer4.Add( self.m_staticline1, 0, wx.EXPAND |wx.ALL, 5 )
		
		self.m_textCtrl1 = wx.TextCtrl( self.m_panel4, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE )
		self.m_textCtrl1.SetBackgroundColour( wx.Colour( 0, 0, 0 ) )
                self.m_textCtrl1.SetForegroundColour( wx.Colour( 240, 240, 240 ) )
		bSizer4.Add( self.m_textCtrl1, 1, wx.ALL|wx.EXPAND, 5 )
		
		
		self.m_panel4.SetSizer( bSizer4 )
		self.m_panel4.Layout()
		bSizer4.Fit( self.m_panel4 )
		bSizer3.Add( self.m_panel4, 1, wx.EXPAND |wx.ALL, 5 )
		
		
		self.SetSizer( bSizer3 )
		self.Layout()
		self.m_menubar3 = wx.MenuBar( 0 )
		self.m_menu1 = wx.Menu()
		self.m_openFile = wx.MenuItem( self.m_menu1, wx.ID_ANY, u"打开"+ u"\t" + u"------  ctrl + f", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu1.AppendItem( self.m_openFile )
		
		self.m_save = wx.MenuItem( self.m_menu1, wx.ID_ANY, u"保存"+ u"\t" + u"------  ctrl + s", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu1.AppendItem( self.m_save )
		
		self.m_menu1.AppendSeparator()
		
		self.m_close = wx.MenuItem( self.m_menu1, wx.ID_ANY, u"关闭", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu1.AppendItem( self.m_close )
		
		self.m_ext = wx.MenuItem( self.m_menu1, wx.ID_ANY, u"退出"+ u"\t" + u"------  alt + F4", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu1.AppendItem( self.m_ext )
		
		self.m_menubar3.Append( self.m_menu1, u"文件" ) 
		
		self.m_menu2 = wx.Menu()
		self.m_run = wx.MenuItem( self.m_menu2, wx.ID_ANY, u"运行"+ u"\t" + u"------  F5", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu2.AppendItem( self.m_run )
		
		self.m_debug = wx.MenuItem( self.m_menu2, wx.ID_ANY, u"调试"+ u"\t" + u"------  F3", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu2.AppendItem( self.m_debug )
		
		self.m_menuItem8 = wx.MenuItem( self.m_menu2, wx.ID_ANY, u"保留位", wx.EmptyString, wx.ITEM_NORMAL )
		self.m_menu2.AppendItem( self.m_menuItem8 )
		
		self.m_menubar3.Append( self.m_menu2, u"工具" ) 
		
		self.SetMenuBar( self.m_menubar3 )
		
  
                self.m_statusBar = self.CreateStatusBar( 1, wx.ST_SIZEGRIP, wx.ID_ANY )
		
		self.Centre( wx.BOTH )
		
		# Connect Events 
		self.Bind( wx.EVT_MENU, self.OpenFile, id = self.m_openFile.GetId() )
		self.Bind( wx.EVT_MENU, self.FormDestory, id = self.m_ext.GetId() )
		self.Bind( wx.EVT_MENU, self.SaveFile, id = self.m_save.GetId() )
		self.Bind( wx.EVT_MENU, self.CloseForm, id = self.m_close.GetId() )
	
	def __del__( self ):
		pass
	
	
	# Virtual event handlers, overide them in your derived class
	def FormDestory( self, event ):
		self.Destroy()
  

	def OpenFile( self, event ):
		self.dirname = ''
		dlg = wx.FileDialog(self,"chose a file",self.dirname,"","*.*",wx.OPEN)
		if dlg.ShowModal() == wx.ID_OK:
                  self.filename = dlg.GetFilename()
                  self.dirname = dlg.GetDirectory()
                  filePath = self.dirname + self.filename
                  self.m_static_fileName.SetLabel(filePath)
                  #print self.dirname
                  f = open(os.path.join(self.dirname,self.filename),'r')
                  self.m_textCtrl1.SetValue(f.read())
                  f.close()
                dlg.Destroy()
                
                
	def SaveFile( self, event ):
                try:
                    f = open(os.path.join(self.dirname,self.filename),'w')
                except AttributeError:
                    print '文件不存在'
                    sys.exit(0)
               
                content = self.m_textCtrl1.GetValue()
                try:
                    f.write(content)
                except UnboundLocalError:
                    print '文件不存在'
                    sys.exit(0)
                finally:
                    f.close()


	def CloseForm( self, event ):
                self.m_static_fileName.SetLabel(u'未打开文件')
                self.m_textCtrl1.SetValue(u'')

          
          
app = wx.PySimpleApp()
frame = MyFrame2()
frame.Show()
app.MainLoop()
	

 另外 该工具还支持 c++ / php, 是的你没看错,是php。不过我美使用过。。。

转载于:https://www.cnblogs.com/lunsa/archive/2013/03/14/2959511.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值