• [学习记录]面对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第一部分就到这里了。随缘更新下一期

  • 相关阅读:
    php 本周的起始时间
    获取微信公众号素材模板id
    复活贴
    Net 4.0 Parallel 编程(四) Task(上)
    Windows Phone 实用开发技巧120合集(电子书+源代码)
    Net 4.0 Parallel 编程(九)Task中的数据共享(下)
    收藏别人的小类库
    将DLL程序集加入GAC后的一系列问题汇总,及解决方法
    Net 4.0 Parallel 编程(七)Task中的数据共享(上)
    内存做硬盘,开启readyboost加速,全面提升系统性能!
  • 原文地址:https://www.cnblogs.com/trickofjoker/p/9195390.html
Copyright © 2020-2023  润新知