自学wxpython——wx.Frame

概述

        wxWidgets是跨平台的GUI工具库,GUI工具库还包括GTK+、Qt 。GTK+是C实现的,由于C语言本身不支持OOP,因而GTK+上手相当困难。Qt 和 wxWidgets 则是C++实现的。
        wxWidgets的主体是由C++构建的,但并不是必需通过C++才能使用它。wxWidgets拥有许多其它语言的绑定,比如 wxJava,wxJavaScript等等,wxPython 就是 Python语言的 wxWidgets 工具库。

注释
        GUI是图形用户界面(Graphic user interface,GUI)
        面向对象编程(Object Oriented Programming,简称OOP)是一种计算机编程架构

窗口程序的基本框架

        可以用以下代码创建一个窗口。

import wx
# 初始化应用程序
app = wx.App()
# 创建一个Frame(窗体)并显示出来
frame = wx.Frame(None,0,"title")
frame.Show()
# 应用程序进入消息循环
app.MainLoop()

        实现效果如下

Wx.Frame (parent, id, title, pos, size, style, name)

参数如下

参数1:parent当前窗口的父窗口,如果当前窗口是top-level window的话,则parent=None,如果不是顶层窗口,则它的值为所属frame的名字
参数2:id窗体编号。如果设置为-1,则系统自动给他分配一个编号。默认为-1.
参数3:title窗体的标题栏,即Caption。默认为空。
参数4:pos窗体的位置坐标。默认值为(-1,-1),则窗体的位置由系统决定。
参数5:size窗体的大小。默认值为(-1,-1),则窗体的大小由系统决定。
参数6:style

窗体样式。默认值为 DEFAULT_FRAME_STYLE

默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合:
wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN

参数7:name窗体名称。

关于style

wx.MAXIMIZE_BOX指示系统在框架的标题栏上显示一个最大化框,使用系统默认的位置和样式。
wx.MINIMIZE_BOX指示系统在框架的标题栏上显示一个最小化框,使用系统默认的位置和样式。
wx.RESIZE_BORDER给框架增加一个可以改变尺寸的边框。
wx.SIMPLE_BORDER没有装饰的边框。不能工作在所有平台上。
wx.SYSTEM_MENU增加系统菜单(带有关闭、移动、改变尺寸等功能)和关闭框到这个窗口。在系统菜单中的改变尺寸和关闭功能的有效性依赖于wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX和wx.CLOSE_BOX样式是否被应用。
wx.FRAME_EX_META如果时在 MacOS 中,这个属性用于是否显示“金属风格”
wx.FRAME_EX_CONTEXTHELP是否有联机帮助按钮。
wx.FRAME_FLOAT_ON_PARENT窗口是否显示在最上层,与 wxSTAY_ON_TOP 不同,它必须有一个父窗口。

同样也可以构建一个类,继承wx.Frame
 

import wx

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(300, 200))
        self.panel = wx.Panel(self)
        self.button = wx.Button(self.panel, label="Click Me")
        self.Bind(wx.EVT_BUTTON, self.on_button_click, self.button)
        self.Show(True)

    def on_button_click(self, event):
        wx.MessageBox('Hello wxPython', 'Message',
                      wx.OK | wx.ICON_INFORMATION)

app = wx.App(False)
frame = MyFrame(None, 'Hello wxPython')
frame.Show(True)

app.MainLoop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值