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

原文地址:https://www.cnblogs.com/trickofjoker/p/9195390.html

时间: 2024-11-08 03:31:37

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

ArcGIS学习记录-Excel和Txt中XY点数据生成点Shape文件方法

(一)Excel中XY点数据生成点Shape文件方法 1.Excel表如下:   2.点击ArcGIS中的"+"号按钮,添加数据.选择第一步中制作好的Excel文件,点击Add按钮添加数据到ArcGIS中. 结果如下 3.右键Disability XY Data Edit 4.选择合适的坐标系 确定 5.结果如下 (二)Txt中XY点数据生成点Shape文件方法 同样.保存为txt文件的坐标类似 右键Display XY Data 显示如下: Edit 选择合适的坐标系 提示没有FID

Python学习记录——Ubuntu(一)基本配置、快捷键和文件操作命令行

1.常用的获取帮助方法: (1)-h (2)--help (3)man man 章节 查找的信息 #用于查询某指令在某章节中的帮助信息 man -f  #精确查找 man -k  #模糊查找 (4)info 2.用命令行安装软件: apt-cache search package  #查找软件包并安装 apt-cache show package  #获取安装包的详细信息 apt-get update/install/remove/purge(删得更干净)package /etc/apt/sou

IdentityServer4学习记录

前言 .NetCore 生态伴随着各位大神的推广,好多小伙伴都学习或应用到现有项目中了:  同时,很多相关组件也提上了学习之旅,如IdentitiServer4.Polly.Ocelot.Consul等:这篇本来想记录一下IdentitiServer4的学习记录的,但是突然发现一篇博文记录的很详细,所以就借用他的地址,因为和我想记录的视频是一样的. IdentityServer4 学习记录 之前我也看过很多相关的博客,和一些视频,但讲解的让人感觉理解的不是那么容易:下面视频真的很不错,讲解思路和

Windows API 编程学习记录<三>

恩,开始写API编程的第三节,其实马上要考试了,但是不把这节写完,心里总感觉不舒服啊.写完赶紧去复习啊       在前两节中,我们介绍了Windows API 编程的一些基本概念和一个最基本API函数 MessageBox的使用,在这节中,我们就来正式编写一个Windows的窗口程序. 在具体编写代码之前,我们必须先要了解一下API 编写窗口程序具体的三个基本步骤:             1. 注册窗口类:             2.创建窗口:             3.显示窗口: 恩,

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

java学习记录(2):JMenuBar

1.在用这个时候发现很多的组件都有J的前缀,例如Button和JButton,前者是awt包的,后者是swing包的,两者耳朵区别是: AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口.AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,我们把它称为peers. 也就是说,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库.由于不同操作系统的图形库所提供的功能

libgdx学习记录23——图片移动选择

模拟移动选择图片,采用相机实现. 1 package com.fxb.newtest; 2 3 import com.badlogic.gdx.ApplicationAdapter; 4 import com.badlogic.gdx.Gdx; 5 import com.badlogic.gdx.graphics.Color; 6 import com.badlogic.gdx.graphics.GL10; 7 import com.badlogic.gdx.graphics.Texture;

Python学习记录-20160108

今日学习记录: f = open("song2", "w", encoding="UTF-8")#文件句柄,以写的模式打开文件,如果没有,就新建一个文件 f.write("我爱北京天安门,")#写入语句 f.write("\n天安门上太阳升.")#写入加入换行符的语句 f.close()#关闭文件 f = open("song2", "a", encoding=&qu

libgdx学习记录11——平铺地图TiledMap

地图对于游戏场景十分重要,很多游戏都需要对地图进行编辑,可使用TileMap进行编辑并生成对应的tmx格式地图文件. 编辑好后,可通过TmxMapLoader来读取地图文件.可通过一个正交相机OthographicCamera和正交地图渲染器OrthogonalTiledMapRenderer来进行显示. 实例如下: 1 package com.fxb.newtest; 2 3 import com.badlogic.gdx.ApplicationAdapter; 4 import com.ba