wxpython学习笔记(推荐查看)

294次阅读  |  发布于5年以前

一、简介

wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。和Python语言与wxWidgets GUI工具库一样,wxPython是开源软件。这意味着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能。wxPython是跨平台的。这意味着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32位微软Windows操作系统、大多数Unix或类Unix系统、苹果Mac OS X。由于使用Python作为编程语言,wxPython编写简单、易于理解。

二、基本使用

基本使用的话到这个地址看已经很详细了,我没有必要重复一遍啦:

http://wiki.wxpython.org/Getting%20Started

三、常用控件

1. 菜单(menu)

http://wiki.wxpython.org/Getting%20Started#head-33e6dc36df2a89db146142e9a97b6e36b956875f

2. 页面布局(Sizer)

这个东东使用起来比较麻烦,参考以下页面吧:

http://wiki.wxpython.org/Getting%20Started#head-7455553d71be4fad208480dffd53b7c68da1a982

wxPython frame的布局详细解释(一)

wxPython frame的布局详细解释(二)

3. Tab页面(notebook)

http://wiki.wxpython.org/Getting%20Started#head-b20d2fc488722cdb3f6193150293d1e118734db8

4. 列表控件(ListCtrl)

这个控件比较强大,是我比较喜欢使用的控件之一。在《wxPythonInAction》一书中第13章有介绍(想要该书电子版及附带源码的朋友可以问我要)

下面是list_report.py中提供的简单用法:

复制代码 代码如下:

import wx
import sys, glob, random
import data

class DemoFrame(wx.Frame):
def init(self):
wx.Frame.init(self, None, -1,
"wx.ListCtrl in wx.LC_REPORT mode",
size=(600,400))

    il = wx.ImageList(16,16, True)  
    for name in glob.glob("smicon??.png"):  
        bmp = wx.Bitmap(name, wx.BITMAP_TYPE_PNG)  
        il_max = il.Add(bmp)  
    self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT)  
    self.list.AssignImageList(il, wx.IMAGE_LIST_SMALL)

    # Add some columns  
    for col, text in enumerate(data.columns):  
        self.list.InsertColumn(col, text)

    # add the rows  
    for item in data.rows:  
        index = self.list.InsertStringItem(sys.maxint, item[0])  
        for col, text in enumerate(item[1:]):  
            self.list.SetStringItem(index, col+1, text)

        # give each item a random image  
        img = random.randint(0, il_max)  
        self.list.SetItemImage(index, img, img)  

    # set the width of the columns in various ways  
    self.list.SetColumnWidth(0, 120)  
    self.list.SetColumnWidth(1, wx.LIST_AUTOSIZE)  
    self.list.SetColumnWidth(2, wx.LIST_AUTOSIZE)  
    self.list.SetColumnWidth(3, wx.LIST_AUTOSIZE_USEHEADER)

app = wx.PySimpleApp()
frame = DemoFrame()
frame.Show()
app.MainLoop()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8