wxPython练习

一个如下图所示的简单GUI界面

实现的功能也非常简单,在主窗口输入字符,点击复制就在副窗口出现相同的字符。点击清空同时清空主副窗口内的字符。

代码如下:

首先是写GUI界面

import wx
import wx.xrc
class test_0(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
                          size=wx.Size(400, 250), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"主窗口", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText1.Wrap(-1)
        bSizer1.Add(self.m_staticText1, 0, wx.ALL, 5)

        self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.m_textCtrl1, 0, wx.ALL, 5)

        self.m_staticText2 = wx.StaticText(self, wx.ID_ANY, u"副窗口", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText2.Wrap(-1)
        bSizer1.Add(self.m_staticText2, 0, wx.ALL, 5)

        self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.m_textCtrl2, 0, wx.ALL, 5)

        self.m_button1 = wx.Button(self, wx.ID_ANY, u"复制", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.m_button1, 0, wx.ALL, 5)

        self.m_button2 = wx.Button(self, wx.ID_ANY, u"清空", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.m_button2, 0, wx.ALL, 5)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.m_button1.Bind(wx.EVT_BUTTON, self.copy_0)
        self.m_button2.Bind(wx.EVT_BUTTON, self.clear_0)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def copy_0(self, event):
        event.Skip()

    def clear_0(self, event):
        event.Skip()

  然后是调用程序:

import wx
import t1st_0
class t1st_2(t1st_0.test_0):
    def text_1(self):
        self.m_textCtrl1.SetValue(‘你好‘)

    def clear_0(self,event):#清空窗口中的内容
        self.m_textCtrl1.Clear()
        self.m_textCtrl2.Clear()
    def copy_0(self,event):
        self.text_11 = self.m_textCtrl1.GetValue()
        self.m_textCtrl2.SetValue(self.text_11)
if __name__ == ‘__main__‘:
    app = wx.App()
    # None表示的是此窗口没有上级父窗体。如果有,就直接在父窗体代码调用的时候填入‘self’就好了。
    main_win = t1st_2(None)
    main_win.text_1()#设置窗口初值

    main_win.Show()
    app.MainLoop()
时间: 2024-10-07 19:32:57

wxPython练习的相关文章

#这个测试程序有助于我们理解wxPython的界面设计,基本的控件和事件调用都有

#!/bin/env python # -*- coding: utf-8 -*- ################################################################################# #这个测试程序有助于我们理解wxPython的界面设计,基本的控件和事件调用都有 ################################################################################# imp

wxwidget wxpython 可视化开发工具

wxwidget官方建议的工具集合:http://wiki.wxwidgets.org/Tools 支持wxpython可视化开发工具 wxFormBuilder wxGlade wxDesigner VisualWX wxwidget wxpython 可视化开发工具,布布扣,bubuko.com

20170830 wxPython的简单使用之布局

20170830 wxPython的简单使用 .wiz-code-container { position: relative; padding: 8px 0; margin: 5px 25px 5px 5px; text-indent: 0 } .CodeMirror { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; color: black; font-size: 0.83rem } .Co

wxPython应用心得

在遍找可以拖拽设计wxPython窗体没找到如意的后,只有把wxPython学一学了,一个简单的项目完成后,总结一些小心得: StaticText控件改变里面的内容用SelLabel方法 整体布局用GridBagSizer,因为你只要告诉sizer你把某个控件插在哪一行哪一列,同时告知横跨多少行多少列即可 bag=wx.GridBagSizer(5,5)#生成行列间距为5的布局控件 bag.Add(btn1,pos=(0,0))#第1行第一列加入一个按钮 bag.Add(label1,pos=(

wxPython:事件处理介绍一

wxPython:事件处理介绍一 事件处理是wxPython程序工作的基本机制,先看几个术语: 事件(event):应该程序期间发生的事情,要求有一个响应. 事件对象(event object):代表具体一个事件,包括事件的数据属性,为wx.Event或其子类的实例,如wx.CommandEvent/wx.MouseEvent. 事件类型(event type):wxPython分配给每个事件对象的一个整数ID. 事件驱动模型: wx.Event的子类: wx.CloseEvent:框架关闭时触

wxPython事件处理

http://www.yiibai.com/wxpython/wxpython_event_handling.html 不像控制台模式应用程序,一个基于GUI的应用程序是事件驱动的,这是在一个顺序的方式执行的. 函数或方法响应于像点击按钮,从集合或鼠标点击等,调用事件选择项目处理函数,用户的操作被执行. 有关某个事件其中应用程序的运行时期间发生的数据被存储为来自wx.Event衍生的子类的对象.一种显示控件(例如按钮)是一种特定类型的事件的源,并且产生与其关联事件类的一个对象.例如,点击一个按钮

wxpython 布局管理

一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*sizers Absolute Positioning绝对位置 程序员指定位置和大小的每个小部件以像素为单位.当你使用绝对定位,你必须了解一些事情. 1.如果你改变窗口大小,大小和位置的一个小部件不改变 2.在各种平台上的应用程序看起来不同 3.更改字体在您的应用程序可能会破坏布局 4.如果你决定改变你

wxpython学习资源

http://www.cnblogs.com/dyx1024/archive/2012/07/15/2592202.html wxPython:布局管理器sizer介绍 ogs.com/dyx1024/ date:2012-07-15 ''' import wx import...以本节看一下wxPython中布局管理器sizer的用法,同样,先看一个实例: 代码: #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Function:绘图 soc

python安装wxPython

先运行apt-cache search wxpython 看是否有返回信息,如果有的话直接安装:sudo apt-get install python-wxtools,安装完成后运行以下代码看看是否成功 成功的话会出现一个对话框

下载wxpython

下载地址:https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/ 确定系统是32位还是64位的 并选择跟python版本相对应的