【wxPython学习记录-1】对wxPython常用类与编写习惯的理解-Python Gui
“He stepped down, trying not to look long at her, as if she were the sun, yet he saw her, like the sun, even without looking.” ― Leo Tolstoy, Anna Karenina
前言
当我们使用Python时,如果自己编写小工具可以直接在console中运行。但是如果想把这种工具共享给大家一起使用,黑框白字显得不是那么“美观”,因此有必要为程序创建可视化界面。目前Python可用的库有tk,pyqt与wxPython等,各种库的优势大家可以百度查看,此处不赘述。
什么是wxPython?
wxPython是使用C++编写的可以在Python中调用的跨平台GUI工具包
常用类
wx.Panel 创建一个可以放置控件的窗口 wx.BoxSizer 创建一个区域,该区域内控件可以指定水平(wx.HORIZONTAL)或者垂直(wx.VERTICAL)排列。可以简单的理解为html中的div, 并且这种“区域”可以不规定大小,可嵌套。类似的还有:wx.StaticBoxSizer, wx.GridSizer, wx.FlexGridSizer, wx.WrapSizer 和 wx.GridBagSizer。 sizer.Add 在创建的区域上添加内容,控件。
注:
所有类都有初始化,为使用方便,某些类的初始化即为类下的Creat函数 如:
import wx a = wx.Button(label=”确定”) 与 a = wx.Button() b.Creat(label=”确定”) 是相同的
编写注意
这部分内容遵循Python的宗旨——Python之禅 1,使用import wx 不要使用 from wx import * 或者 from wxPython.wx import *. 2,在函数中有默认值,尽量使用模块提供的参数来编写出来,因为显式的可读性优于隐式 3,在子类化wx.Windows时使用* args和** kwargs,这样就不需要预测可能提供的参数有哪些 4,大部分函数都有一个默认的ID,但是尽量不要给其赋值,尽量使用wx.ID_ANY。但是也有例外的情况,比如menu中的退出,关于等。在Mac上,退出和关于是着重显示的。因此有必要设置特殊的ID来表明二者。退出:ID_EXIT 关于:ID_ABOUT 5,尽量使用sizers定位,因为在拉伸窗口大小的时候如果使用绝对定位会很不美观 6,尽可能使用类,而不单独拿出来使用,简单胜于复杂 7,尽可能使用Python的函数,避免使用wx的的函数,如 size=(500,400),而不是size=wx.Size(500,400) GUI的坑还有很多,继续坚持跳坑!——Wicos 2020.2.10