wxPython初试水

最近项目的甲方爸爸又添新要求,命令行已经不能满足他,于是要开始学写界面。由于整个项目都是python写成也不是很复杂,所以略微查了查python有什么好用的界面编写工具,最终敲定了wxPython。
先贴一个API文档页面

安装

普通的一条命令安装:

sudo pip install -U \
  -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04 \
  wxPython

似乎曾经支持过python2.7版本,但是现在官网自动忽略了他们支持过2.7这件事。

Hello World

import wx
# 创建一个App实例
app = wx.App(False)
# 创建一个顶级窗口
frame = wx.Frame(None, wx.ID_ANY, "Hollo World")
# 显示窗口
frame.Show(True)
# 主循环,处理事件
app.MainLoop()

增加菜单

import wx

app = wx.App(False)

title = 'yyApp'
frame = wx.Frame(None, title=title, size=(300, 200))
frame.control = wx.TextCtrl(frame, style=wx.TE_MULTILINE)
# 创建窗口底部的状态栏
frame.CreateStatusBar()
# 创建菜单
filemenu = wx.Menu()
filemenu.Append(wx.ID_EXIT, "Exit", "Termanate the program")
filemenu.AppendSeparator()
filemenu.Append(wx.ID_ABOUT, "About", "Information about this program")
# 创建菜单条
menuBar = wx.MenuBar()
menuBar.Append(filemenu, "Settings")
# 建立菜单条与窗口的联系
frame.SetMenuBar(menuBar)
frame.Show(True)

app.MainLoop()

事件处理

import wx

def on_about(e):
    # 创建对话框
    dlg = wx.MessageDialog(frame, 'yy app', 'About Sample', wx.OK)
    dlg.ShowModal()
    # 销毁对话框
    dlg.Destroy()

def on_exit(e):
    frame.Close(True)

app = wx.App(False)

title = 'yyApp'
frame = wx.Frame(None, title=title, size=(300, 200))
frame.control = wx.TextCtrl(frame, style=wx.TE_MULTILINE)
frame.CreateStatusBar()

filemenu = wx.Menu()
menu_exit = filemenu.Append(wx.ID_EXIT, "Exit", "Termanate the program")
filemenu.AppendSeparator()
menu_about = filemenu.Append(wx.ID_ABOUT, "About", "Information about this program")

menuBar = wx.MenuBar()
menuBar.Append(filemenu, "Settings")

frame.SetMenuBar(menuBar)
frame.Show(True)
# 将菜单项与事件处理函数绑定
frame.Bind(wx.EVT_MENU, on_about, menu_about)
frame.Bind(wx.EVT_MENU, on_exit, menu_exit)

app.MainLoop()

新手教程基本就到这里,接下来就是让IDE替你写代码了,基于wxPython的IDE有不少,也没有去比较随便选了一个wxFormBuilder。结合wxFormBuilder的功能和wxPython的API基本能够完成简单的界面开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值