栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

(九)Python GUI的基本框架

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(九)Python GUI的基本框架

基本框架

创建一个简单的wxPython程序

import wx
app = wx.App()  # 创建应用程序对象
frame = wx.Frame(None, title = "Hello, World!") #创建一个框架
frame.Show(True)    # 显示窗口
app.MainLoop()  # 进入事件循化

运行结果如下所示:

利用我们之前讲的面向对象的方法,可以对这个代码进行修改,修改之后的代码如下所示:

import wx


class MyApp(wx.App):    # 从App类里生子类
    def OnInit(self):   # 定义初始化方法
        frame = wx.Frame(None, title="Hello, World!")   # 创建一个框架
        frame.Show()    # 显示窗口
        return True


if __name__ == '__main__':
    app = MyApp()   # 执行初始化方法
    app.MainLoop()
组件
  • 组件容器(Containers)——用于容纳其他组件 – 例:wx.Panel等 
  • 动态组件(Dynamic Widgets)——可以被用户编辑 – 例:wx.Button、wx.TextCtrl、wx.ListBox等
  • 静态组件(Static Widgets)——显示信息用,不能被用户编辑 – 例:wx.StaticBitmap、wx.StaticText、wxStaticLine等 
  • 其他组件 – 例:wx.ToolBar、wx.MenuBar、wx.StatusBar

 具体的使用方法,如下所示:

import wx


class Frame1(wx.Frame):
    def __init__(self, superior):   # 修改了原来Frame子类的__init__()方法
        wx.Frame.__init__(self, parent=superior, title="一个可以输入的文本框", pos=(100, 200), size=(350, 200))
        # 进行窗口标题、位置、大小的设置
        panel = wx.Panel(self)  # 通过Panel、TextCtrl增加一个文本输入框的位置
        text1 = wx.TextCtrl(panel, value="Hello, World!", size=(350, 200))
        # 把初始的文本内容设置为Hello, World!

if __name__ == '__main__':
    app = wx.App()
    frame = Frame1(None)
    frame.Show(True)
    app.MainLoop()

运行结果如下所示:

事件处理机制
  • GUI程序工作的基本机制之一——事件处理
  • 事件
    • – 移动鼠标,按下鼠标左键、单击按钮等
    • – 可以由用户操作触发产生,也可以在程序中创建对象产生
  •  wxPython程序将特定类型的事件关联到特定的一块代码(方法),当 该类型的事件产生时,相关代码将响应事件被自动执行 
    • – 例:当产生鼠标移动事件时,OnMove()方法将被自动调

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号