• [学习记录]面对wxpython的长跑(100米:wxpython安装,相关文件,wx.App,wx.Frame)


    被老师要求,已经是不得不进行图形界面的开发了,因为程序本体使用python写的,所以自然第一次进行图形界面开发就选择了wxpython,wxpython是一款非常优秀的GUI图形库,写起来也相对简洁方便。

    安装时直接pip install wxpython即可。

    demo程序以及其它官方相关文件下载地址:https://extras.wxpython.org/wxPython4/extras/

    官方文档:https://docs.wxpython.org/wx.1moduleindex.html

    下面进入正题:首先先是例行的hello world

    import wx
    app=wx.App()
    win = wx.Frame(None,-1,title = 'Hello World')
    win.Show()
    app.MainLoop()

    运行这段代码,就会弹出如下窗口

    首先是最重要的wx.App类,官方文档如下:

    大概意思整理一下即:每个使用wx的引用都必须有唯一的一个wx.App实例,并且所有的UI对象都要在wx.App的实例创建之后才能创建。wx.App的创建确保了所有和wxpython相关的gui平台以及其它内容都被完整初始化了。wx.App.MainLoop()则是另外一个重要的语句,该循环用来接收GUI事件(event)


    其次是wx.Frame类:

    Frame类就是我们平常看到的那种有标题框的界面框,里面可以容纳window类但不能放dialog和frame。构造函数如下

    Frame(parent, id=ID_ANY, title="", pos=DefaultPosition,size=DefaultSize, style=DEFAULT_FRAME_STYLE, name=FrameNameStr)

    parent用来指定父类,ID为一个整数,title中的内容会显示到标题上,pos为初始位置,size为窗口大小(x,y),style有固定取值,name不要管。

    style的常用取值如下:

    wx.DEFAULT_FRAME_STYLE:默认取值,等于同时使用了wx.MINIMIZE_BOX|wx.MAXIMIZE_BOX|wx.RESIZE_BORDER|wx.SYSTEM_MENU|wx.CAPTION|wx.CLOSE_BOX|wx.CLIP_CHILDREN 

    wx.ICONIZE:初始以最小化形式出现

     Frame的相关事件:

    EVT_CLOSE:当一个Frame正在被关闭的时候发生该事件,可以使点击红叉叉或者是调用wx.Window.Close

    EVT_ICONIZE:窗口最小化

    EVT_MENU_OPEN:当一个菜单被打开时

    EVT_MENU_CLOSE:当一个菜单刚被关闭时

    EVT_MENU_HIGHLIGHT:针对某一个菜单的高亮事件,self.Bind(wx.EVT_MENU_HIGHLIGHT, 动作函数, self.gg.GetMenuItems()[0]),需要监听的是一个wx.MenuItem对象。

    EVT_MENU_HIGHLIGHT_ALL:需要如下绑定self.Bind(wx.EVT_MENU_HIGHLIGHT_ALL, 动作函数, wx.MenuBar类),当鼠标滑过任何一个菜单的时候就有响应,当EVT_MENU_HIGHLIGHT_ALL发生时无法响应EVT_MENU_HIGHLIGHT事件

    主要接口:

    CreateStatusBar(self, number=1, style=STB_DEFAULT_STYLE, id=0, name=StatusBarNameStr)

    创建底端状态栏,number控制状态栏有几栏,style参考wx.StatusBar中提到的style,返回创建的wx.StatusBar实例

    CreateToolBar(self, style=TB_DEFAULT_STYLE, id=ID_ANY, name=ToolBarNameStr)

    在左边或顶部创建工具栏,返回创建的wx.ToolBar实例

    GetClientAreaOrigin , GetMenuBar,GetStatusBar,GetStatusBarPane,GetToolBar:

    都是返回相关属性或参数的。

    PushStatusText(self,text,number=0):

    向状态栏中添加文字,text为字符串,number标记哪一个状态栏中

    SetMenuBar(self, menuBar),SetStatusBar(self, statusBar),SetStatusBarPane(self, n),SetStatusText(self, text, number=0),SetStatusWidths(self, widths),SetStatusWidths(self, widths):

    设置相关属性或是将菜单状态栏等加入进来。

    那么关于wxpython第一部分就到这里了。随缘更新下一期

  • 相关阅读:
    51 nod 1046 A^B Mod C
    51nod 1027 大数乘法
    Subversion基础:概念、安装、配置和基本操作(转)
    IOS 网络请求中设置cookie
    iOS设备控制打印机输出文本
    Xcode6中如何添加pch文件
    iOS8 PUSH解决方法
    iOS8 Push Notifications
    xcode升级到6.0以后遇到的警告错误 原帖链接http://www.cocoachina.com/bbs/simple/?t112432.html
    xcode升级到6.0以后遇到的警告错误解决方法
  • 原文地址:https://www.cnblogs.com/trickofjoker/p/9195390.html
Copyright © 2020-2023  润新知