[ZZ] wxPyhon之Frame (二)
来源:互联网 发布:发那科法机器人编程 编辑:程序博客网 时间:2024/05/20 07:53
Window styles
说道窗口就必须说说窗口的风格。如果你以前用过delphi,vb开发,那么一定记得每个窗口都可以设置,诸如是否有关闭按钮、是否可以最大化、最小化等等。那么WxPython中是怎么设置的呢?答案是Window Styles
在我们前面讲述wxFrame的构造函数时有一个style参数。对了,就是设置这个,下面的表格列出了所有窗口的风格。
参数
解释
wxDEFAULT_FRAME_STYLE
这是每个窗口的缺省风格,包含标题、可调节大小的边框,最大最小化按钮、关闭按钮和系统菜单。
wxICONIZE
最小化时显示图标(只适用于Windows平台)
wxICONIZE
设置窗口标题
wxMINIMIZE
与wxICONIZE相同
wxMINIMIZE_BOX
最小化按钮
wxMAXIMIZE_BOX
最大化按钮
wxCLOSE_BOX
关闭按钮
wxSTAY_ON_TOP
置顶窗口
wxSYSTEM_MENU
是否显示系统菜单
wxRESIZE_BORDER
是否科研调整窗口大小
wxFRAME_TOOL_WINDOW
窗口最小化时,是否在Windows(GTK+)工具栏中显示。
wxFRAME_FLOAT_ON_PARENT
窗口是否显示在最上层,与wxSTAY_ON_TOP不同,它必须有一个父窗口。
wxFRAME_EX_CONTEXTHELP
是否有联机帮助按钮。
wxFRAME_EX_METAL
如果时在MacOS中,这个属性用于是否显示“金属风格”
下面这段代码演示了窗口风格的使用
窗口风格代码示例
import wx
class StyleFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,"This is a style fram",size=(400,300),style=wx.SYSTEM_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION)
if __name__=="__main__":
app=wx.PySimpleApp()
frame=StyleFrame()
frame.Show(True)
app.MainLoop();
窗口的成员函数
前面的章节我们讲了窗口的各种属性,目前看来一进足够了。下面我们来看看窗口有哪些成员函数。前面已经讲过了一个构造函数,下面看看还有哪些构造函数。
void Centre(int direction = wxBOTH)
这个函数用于定义窗口居中,其中direction参数有三个选项wxHORIZONTAL, wxVERTICAL 或者 wxBOTH。顾名思义,第一个时水平居中,第二个时垂直居中,最后一个是水平和垂直居中。
bool Create(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame")
这个函数用于动态创建窗口,其中的参数和构造函数相同,这里就不讲了。
virtual wxStatusBar* CreateStatusBar(int number = 1, long style = 0, wxWindowID id = -1, const wxString& name = "statusBar")
前面我们说过,一般的窗口都会有一个状态条,尤其是主窗口,中国方法就是用于创建状态条的,这里先不细讲,在后面专门讲解状态条的部分将详细描述。
virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER | wxTB_HORIZONTAL, wxWindowID id = -1, const wxString& name = "toolBar")
每个窗口尤其是主窗口一般都会有一个工具栏,上面放一些快捷按钮等,这个方法用于创建工具条。
wxMenuBar* GetMenuBar() const
获得菜单对象的方法。
wxStatusBar* GetStatusBar() const
获得状态条对象。
wxToolBar* GetToolBar() const
获得工具栏对象的方法。
void ProcessCommand(int id)
模拟菜单命令的方法,其中的id参数为Menu对象的ID属性。
void SetMenuBar(wxMenuBar* menuBar)
创建菜单对象的方法,其参数为wxMenuBar对象。
void SetStatusBar(wxStatusBar* statusBar)
设置状态条对象,其参数为wxStatusBar对象。
virtual void SetStatusText(const wxString& text, int number = 0)
设置状态条的文字。
virtual void SetStatusWidths(int n, int *widths)
设置状态条文字的宽度。
void SetToolBar(wxToolBar* toolBar)
设置工具栏对象,其参数为wxToolBar对象。
示例代码:
包含工具栏、菜单和状态条的窗口
import wx
ID_New =wx.NewId()
class StyleFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,"This is a style fram",size=(400,300),style=wx.SYSTEM_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION)
menu=wx.Menu()
menu.Append(ID_New,"&New")
menubar=wx.MenuBar()
menubar.Append(menu,"&File")
self.SetMenuBar(menubar)
self.CreateStatusBar();
tb = self.CreateToolBar( wx.TB_HORIZONTAL
| wx.NO_BORDER
| wx.TB_FLAT
| wx.TB_TEXT
)
tsize = (16,16)
new_bmp = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize)
tb.AddSimpleTool(10, new_bmp, "New", "Long help for 'New'")
if __name__=="__main__":
app=wx.PySimpleApp()
frame=StyleFrame()
frame.Show(True)
frame.Center()
app.MainLoop();
好了。今天就讲到这里。基本上所有有关窗口的属性和方法都介绍完了,当然还有MDI窗口不过没什么大的区别,在以后的例子中我将逐步对其进行介绍。
- [ZZ] wxPyhon之Frame (二)
- [ZZ] wxPyhon之Frame (一)
- wxPyhon编程应用之HostEditor V1.0
- PyGobject(二十二)布局容器之Frame
- Android基础夯实--重温动画(二)之Frame Animation
- zz 基于@AspectJ配置Spring AOP(之二)
- webkit调试之二--初始化frame
- 编程修养(二) (zz)
- Linux的帧缓冲(Frame Buffer)之二:显示图形和图像
- Linux的帧缓冲(Frame Buffer)之二:显示图形和图像
- 新浪微博开发之二十八(原创微博frame)
- x264 frame级函数流程图(二)
- x264 frame级函数流程图(二)
- <Android 基础(二十五)> Frame Animation
- Animation动画(二)---- Frame 帧动画
- zz数学之美系列二十一:布隆过滤器(Bloom Filter)
- Learn Spring in spring(二) (zz)
- (ZZ) SCTP 协议详解(二)
- final修饰符
- Vczh Library++3.0之正则表达式引擎(生成epsilon-NFA)
- [ZZ] wxPyhon之Frame (一)
- 重读《COM原理与应用》之二——概述(第一章)
- javascript 触发事件列表
- [ZZ] wxPyhon之Frame (二)
- 像鼠标右键的新建项中添加word、excel、PPT
- js offsetHeight offsetWidth 解说
- 工作总结
- 《windows核心编程》读书笔记1-chapter1
- totem 解码器
- C# 文件上传 默认最大为4M的解决方法
- Spring事务特性
- 快速排序算法、计数排序算法