首页:http://www.oschina.net/action/project/go?id=39680&p=home
wxOneShell是一个快速开发wxPython SDI程序的框架,wxOneShell的设计 目的,是将程序设计中图像界面的例行功能隔离出来,只用ini文件配置即可完成 Logo屏幕、多面板切换的界面、自动生成菜单和工具条、定义热键、任务条图标 菜单、多语言切 换、控制不同面板的显示等功能,并能辅助界面设计和 保存设置。
wxOneShell的基本原理是,由wxOneShell.py负责生成图形界面,由ui目 录中的构件负责数据 的显示,而由fs目录中的控制模块控制不同显示数据之间 的操作。
WxOneShell is a framework for rapid development of wxPython SDI program, wxOneShell is designed, is to isolate the routine function of programming a graphical interface, using ini files configuration generate splash screen, siwitch mulit-panel ,menus and toolbar ,widgets and its hotkey denfine, task bar button menu, and switch multi-language , collect those string to be translated, control panels display etc., and auxiliary interface design and save your settings.
The Basic principle of wxOneShell is, wxOneShell.py is responsible for generating a graphical interface, components in the directory ui\ are responsible data viwe, and controlled the operations between different data views by control module in fs\ directory .
屏幕快照1
Screen snapshot 1
注意:顶部工具栏部分是部分菜单项的支持类型,更多请看快照2
Note: widgets in toolbar is some menu item types, see snapshot 2 for more.
屏幕快照2
Screen Snapshot 2
*提示:
1.任务条菜单对应主菜单
2.选项菜单是用不同菜单类型制作好的功能构件,可以帮助你制作新程序。
*Note:
1.Task menu correspond to the main menu
2.The Option menu is already making the function widget well by different menu types, It can help you make a new program.
1.wxOneShell的目录结构 |
Directory structue of wxOneShell |
||
目录[Directory] |
文件[File] |
说明 |
Description |
.\ |
安装目录 |
Install Directory |
|
wxOneShell.py |
主程序。不要编辑。 |
Main program,Don't edit |
|
wxOneShell.gif |
主程序图标 |
Icon of main program |
|
wxOneShell.ini |
界面布局配置文件。定义主界面的参数和不同面 板包含的显示构件,面板的主从关系等 |
Interface layout profile. Define interface parameters and display panel contains the component, Panel of the master-slave relationship |
|
WxOneShell-ini.py |
生成的布局配置py文件,用以保护程序的布局配 置。(可选) |
The py file for interface layout profile by generated,use to protect the program profie.(optional) |
|
wxOneShell.jpg |
主程序Logo图像文件(可选) |
Logo file of main program(optional) |
|
fs\ |
控制模块目录 |
Directory of control module |
|
SampleUI.py |
控制模块示例 |
Example of control module |
|
SampleUI.ini |
控制模块的设置文件。设置布局构件的大小, 动态隐藏的面板,使用的语言,用户接口信息 等。 |
Control module configuration file. Setting the size of widgets, hidden settings panel, the language used, and user interface information |
|
SampleUI.mnu |
菜单定义文件 |
The file that define menu |
|
SampleUI-mnu.py |
生成菜单py文件,用以保护菜单配置(可选)。 |
The py file for menu by generated,use to protect the menu setting.(optional) |
|
fs\SampleUI_EXT\ | 控制模块的目录 |
The directory for Control module |
|
fs\SampleUI_EXT\lang |
控制模块的多语言翻译文件目录 |
The translation file directory for Control module |
|
Chinese (Simplified).lang |
语言翻译文件(可选) |
Language translation files (optional) |
|
English.lang |
语言翻译文件(可选) |
Language translation files (optional) |
|
functions\ |
函数模块文件目录 |
Function module file directory |
|
Languages.py |
语言代码对照字典 |
Language code dictionary |
|
ToolFuncs.py |
基本函数文件 |
Basic Function file |
|
UserFuncs.py |
用户自定义函数文件 |
User-defined functions file |
|
UserFuncs1.py | 用户自定义函数文件1 | User-defined functions file 1 | |
images\ |
图像存放目录 |
Images Directory |
|
Exit.png |
用户图标 |
User's Icon |
|
OneModules\ |
wxOneShell基本构件目录 |
Directory of basic components of wxOneShell |
|
IconsLib.py |
内置图标库 |
Built-in icon library |
|
OneConfig.py |
ini文件处理模块 |
Ini file handling module |
|
OneImages.py | 图像处理模块 | Images handling module | |
OneMasterPanel.py |
面板模块 |
Panel module |
|
OnePanel.py |
wxOneShell数据显示固定构件的祖先类模块 |
ancestor classes module of wxOneShell shows data in a fixed component |
|
OneScrolledPanel.py | wxOneShell数据显示滚动构件的祖先类模块 | ancestor classes module of wxOneShell shows data in a scrollable component | |
OneUI.py |
用户fs模块的祖先类模块 |
ancestor classes module of user's fs module |
|
... | ... | ... | |
ui\ |
用户自定义构件目录 |
Directory of User-defined component |
|
SimplePanel.py |
构件简单示例文件 |
Simple example of component |
|
ScrolledPanel.py |
滚动构件示例文件 |
Simple example of scrollable component |
|
modules\ | 用户自定义模块目录 | Directory of User-defined modules | |
HotKey.py |
HotKey模块 |
HotKey module |
|
help\ |
帮助文件目录 |
Directory of help file |
|
wxOnShell-help.html | 本文件 | This file |
|
license\ |
版权声明文件目录 |
Directory of license |
|
license.txt |
|||
lgpl-2.1(include cn version).txt |
2.快速开始 |
2.Quick Start |
2.1. 最小的例子 |
2.1Minimum example |
只需要写8行代码 |
It only need 8 lines code |
2.1.1 SimplePanel.py |
|
import OnePanel class SimplePanel(OnePanel.OnePanel): def init(self, parent, top,id, pos, size, style, name): OnePanel.OnePanel.init(self, id=id, name=name,parent=parent,top=top,pos=pos, size=size,style=style) |
|
2.1.2 SampleUI.py |
|
import OneUI class SampleUI(OneUI.OneUI): def init(self): OneUI.OneUI.init(self) |
|
2.1.3SimplePanel.py文件放到ui\目录,SampleUI.py放到fs\ 目录。 |
2.1.3Put SimplePanel.py to ui\,and put SampleUI.py to fs. |
2.1.4编写wxOneShell.ini文件,放到程序根目录。 |
2.1.4 Edit the file wxOneShell.ini,and put it to directory of the program. |
[About] CopyrightPerson=Oneask CopyrightYear=(C) 2015 Description=a SDI frame for develop wxPython program rapidly [email protected],[email protected] HelpFile=%InstallPath%\help\wxOneShell-help.htm LicenseFile=%InstallPath%\license\license.txt ProgramName=wxOneShell Version=1.0 WebSiteHyperlink=https://github.com/cloudherder/wxOneShell WebSiteName=wxOneShell GitHub Site [General] MasterPane=Viewer PanelPages=8 Role=Master,Slave,Viewer,Other,ToolFlatBar,ToolListBar,ToolFoldBar,ToolBar StatusBarFieldCount=5 StatusBarWidths=60,-1,200,100,100 [Viewer] CanClose= Caption= CaptionVisible= Direction=0 DockSide=Top FloatPosition= FsType=SampleUI HidenRemainWidth= InfoForCreate=.CaptionVisible(0).Resizable(1).MaximizeButton(1).MinimizeButton(1).CloseButton(0).BestSize((320,50)).MinSize((-1,50)) InfoForUpdate=.Center().Row(0).Layer(1).Position(1) PanelStyle=0 Style=MasterBar Panel1_PageCloseButton=1 Panel1_TabFixed= Panel1_TabPosition= Panel1_TabStyle=2 Panel2_PageCloseButton=1 Panel2_TabFixed= Panel2_TabPosition= Panel2_TabStyle=3 [Other] CanClose= Caption= CaptionVisible= Direction=1 DockSide=Bottom FloatPosition= FsType= HidenRemainWidth= InfoForCreate=.CaptionVisible(0).Resizable(1).MaximizeButton(1).MinimizeButton(0).CloseButton(0).BestSize((-1,50)).MinSize((-1,50)).Direction(1) InfoForUpdate=.Bottom().Row(0).Layer(1).Position(2) PanelStyle=0 Style=Master2Panel Panel1_PageCloseButton=1 Panel1_TabFixed= Panel1_TabPosition= Panel1_TabStyle= Panel2_PageCloseButton=1 Panel2_TabFixed= Panel2_TabPosition= Panel2_TabStyle=0 [Slave] CanClose= Caption=Right Panel CaptionVisible= Direction=1 DockSide=Right FloatPosition= FsType= HidenRemainWidth= InfoForCreate=.CaptionVisible(0).Resizable(1).MaximizeButton(0).MinimizeButton(1).CloseButton(0).BestSize((320,50)).MinSize((-1,50)).Direction(1) InfoForUpdate=.Right().Row(0).Layer(0).Position(0) PanelStyle=0 Panel1_PageCloseButton=1 Panel1_TabFixed= Panel1_TabPosition=Bottom Panel1_TabStyle=5 Panel2_PageCloseButton=1 Panel2_TabFixed= Panel2_TabPosition=Bottom Panel2_TabStyle=3 Style=MasterBar [ToolBar] BorderStyle=4 CanClose= Caption= CaptionVisible= Direction=1 DockSide=Bottom FloatPosition= HidenRemainWidth= InfoForCreate=.CaptionVisible(0).BottomDockable(1).CloseButton(0).MinimizeButton(0).BestSize((700,45)).MinSize((-1,45)).Direction(1) InfoForUpdate=.Bottom().Row(1).Layer(3).Position(1) PanelStyle=0 Style=SideBar TabPosition= TabStyle=2 Scrollable=0 ToolStyle=FlatBook [ToolFlatBar] BorderStyle=4 CanClose= Caption= CaptionVisible= Direction=1 DockSide=Left-Top FloatPosition= HidenRemainWidth= InfoForCreate=.CaptionVisible(0).TopDockable(1).CloseButton(0).MinimizeButton(0).BestSize((800,130)).MinSize((-1,20)).Direction(1) InfoForUpdate=.Top().Row(0).Layer(1).Position(0) PanelStyle=0 ToolStyle=FlatBook Style=SideBar TabPosition= TabStyle=3 [ToolFoldBar] BorderStyle=4 CanClose=1 Caption= CaptionVisible= Direction=1 FloatPosition=10,300 HidenRemainWidth= InfoForCreate=.CaptionVisible(0).CloseButton(1).MinimizeButton(0).BestSize((200,130)).MinSize((-1,20)) InfoForUpdate=.Top().Row(0).Layer(1).Position(0) PanelStyle=0 Style=FoldBar TabPosition= TabStyle= [ToolListBar] BorderStyle=4 CanClose=1 Caption= CaptionVisible= Direction=1 FloatPosition=1000,50 HidenRemainWidth= InfoForCreate=.CaptionVisible(0).CloseButton(1).MinimizeButton(0).BestSize((150,130)).MinSize((-1,20)) InfoForUpdate=.Top().Row(0).Layer(1).Position(0) PanelStyle=0 Style=ListBook TabPosition=Right TabStyle= [Master] CanClose= Caption=Left Panel CaptionVisible= Direction=1 DockSide=Left FloatPosition= FsType= HidenRemainWidth=00 InfoForCreate=.CaptionVisible(0).Resizable(1).MaximizeButton(1).MinimizeButton(1).CloseButton(0).BestSize((320,50)).MinSize((-1,50)).Direction(1) InfoForUpdate=.Left().Row(0).Layer(1).Position(0) Panel1_PageCloseButton=1 Panel1_TabFixed= Panel1_TabPosition=Left Panel1_TabStyle=1 Panel2_PageCloseButton=1 Panel2_TabFixed= Panel2_TabPosition= Panel2_TabStyle=2 PanelStyle=0 Style=MasterBar |
|
2.1.5 运行wxOneShell.py |
2.1.5 Run wxOneShell.py |
python wxOneShell.py 可得下图 |
python wxOneShell.py You will see the UI as following: |
*注意:此处是使用了系统默认的fs模块ini参数运行程序,当模块ini文件(此处是Sample.ini)不存在时,会自动生成这一文件。 |
*Note:This is to use the ini parameter by system default for fs modules to run the program , when the ini file for the module(Sample.ini in here) is not exists, this file will be automatically generated. |