前言

wxFormbuilder的文章非常少,也没有一个官方指南,非常坑爹。不过网络上有很多大神,参考了一下,然后自己再试试,页算是能摸索出用法。wxFormbuilder只能设计布局,事件只能链接一个名字,具体的要导出来脚本之后,在主脚本继承之后,再写。

参考了以下两篇文章:

http://www.cnblogs.com/hester/p/4696355.html 做一个编辑器

http://blog.csdn.net/baoyan2015/article/details/54613930 如何安装wxFormBuilder,然后导出GUI的代码

之前用python不会GUI,总是用的脚本,非常不方便,于是想学习以下wxpython.

然而太难了,所以用wxFormBuilder来辅助一下。

一.目的是用wxFormBuilder设计一个这样的东东

二.过程有点麻烦,参考文章一,在wxFormBuilder 点来点去,终于点成差不多的样子,把参数啥的在旁边填一下。

首先是一个Frame,然后加一个竖着的wxBoxSizer,然后再来一个横着的wxBoxSizer,这两个wxBoxSizer是一个按钮,不过在旁边的properties可以修改为横着的,还是竖着的

然后添加一个wxTextCtril,两个wxButton,再在下面添加一个wxTextCtrl就好了。

然后在右边的Properties点点点,填填填。点击中间的Python页,能看到有python代码在这。给他copy出来,导出保存。我给它取名叫做MyFrame1.py

三.这个是导出的代码 MyFrame1.py

# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MyFrame1
###########################################################################

class MyFrame1 ( wx.Frame ):

def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"编辑器", pos = wx.DefaultPosition, size = wx.Size( 410,335 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )

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

bSizer1 = wx.BoxSizer( wx.VERTICAL )

bSizer2 = wx.BoxSizer( wx.HORIZONTAL )

self.filename = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.Point( 5,5 ), wx.Size( 210,25 ), 0 )
bSizer2.Add( self.filename, 0, wx.ALL, 5 )

self.loadbutton = wx.Button( self, wx.ID_ANY, "load", wx.Point( 225,5 ), wx.Size( 80,25 ), 0 )
bSizer2.Add( self.loadbutton, 0, wx.ALL, 5 )

self.savebutton = wx.Button( self, wx.ID_ANY, "save", wx.Point( 315,5 ), wx.Size( 80,25 ), 0 )
bSizer2.Add( self.savebutton, 0, wx.ALL, 5 )

bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )

self.contents = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.Point( 5,35 ), wx.Size( 390,260 ), wx.TE_MULTILINE|wx.HSCROLL )
bSizer1.Add( self.contents, 0, wx.ALL, 5 )

self.SetSizer( bSizer1 )
self.Layout()

self.Centre( wx.BOTH )

# Connect Events
self.loadbutton.Bind( wx.EVT_BUTTON, self.load )
self.savebutton.Bind( wx.EVT_BUTTON, self.save )

def __del__( self ):
pass

# Virtual event handlers, overide them in your derived class
def load( self, event ):
pass

def save( self, event ):
pass

四.在同一个文件夹下面做一个主脚本ex22.py,调用继承上面的那个脚本。以下是代码:

# -*- coding: UTF-8 -*-  
import wx
import MyFrame1
import sys 
reload(sys) 
sys.setdefaultencoding('utf-8')

class MyFrame(MyFrame1.MyFrame1):
    # 首先,咱们从刚刚源文件中将主窗体继承下来.就是修改过name属性的主窗体咯。
def load( self, event):
file=open(self.filename.GetValue())
self.contents.SetValue(file.read())
file.close

def save( self, event ):
file=open(self.filename.GetValue(),'w')
file.write(self.contents.GetValue())
file.close()

if __name__ == '__main__':
    app = wx.App()
  
    main_win = MyFrame(None)
    main_win.Show()

app.MainLoop()

五.运行试试:

输入文件名,可以打开同目录下的文件,而且显示在下方。修改后也可以保存。

wxFormBuilder摸索--小白上手--做一个编辑器相关推荐

  1. 拼团小程序源码_纯小白如何做一个摄影电商拼团小程序?

    过去,摄影行业都是线下实体店为主,宣传手段单一.推广效率差,客户复购率更是不怎样.随着微信小程序的出现,各个摄影行业商家开始通过小程序来进行推广,连接线上线下场景,这样便能触达更多消费者. 小程序拥有 ...

  2. 小白怎么做一个轮播图?(思路+代码)

    在页面中写好结构和样式(根据情况而定) 外层用一个$(function(){})函数包裹起来,代表等页面的内容加载完成后再去执行jquery的功能代码. 获取到包裹ul,li的大盒子元素:const ...

  3. android 手表按钮事件,关于android-studio:上手做一个华为鸿蒙手表应用-4-生命周期事件...

    接上一篇:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202356576775850798&fid=010130 ...

  4. 鸿蒙为什么显示一个手表,上手做一个华为鸿蒙手表应用 4 - 生命周期事件

    这里我们先从 JS API 的生命周期接口开始 这里就不画图了,直接用张荣超老师视频教程上的截图,没有哪帧图片没有字幕,抱歉了 这里生命周期跟,小程序很像 在这里插入图片描述 app.js 为了方便看 ...

  5. 三步教你用Node做一个微信哄女友(基友)神器,小白可上手

    前言 不知道大家最近有没有被python版的<微信每日说>刷屏呢,他可是霸占了github的python热门快两周了.我们前端的小伙伴是不是也看着有点眼馋呢,因为毕竟是不那么熟悉的pyth ...

  6. python一个月能挣多少钱-零基础学python,我可以让你一个月上手做项目!

    今天达内python培训想要跟所有零基础学习python的同学分享一些神操作,这些操作可以让你在一个月上手做项目,我准备好了,你呢? 为什么你的Python学习效率如此之低?学了3个月还不会做项目做爬 ...

  7. 做一个“多人在线编辑器”,你会怎么开始

    看似只是一个简单的问题,但是其中却隐含了非常多的知识,对于"多人在线编辑器"这么一个产品来说,如果让你来负责设计并开发,你会怎么去开始一步步展开工作,其中主要考察的并不是让你迅速的 ...

  8. 【跟我一起学Unity3D】做一个2D的90坦克大战之地图编辑器

    从10月20号到现在,Unity3D也学了10天了,对于Unity3D也有了一个大致的了解,有必要做一个小游戏来检测一下自己的学习成果了.经过两天的努力,终于总算是做出来了一个可以玩的坦克大战了.首先 ...

  9. Python 用pygame 做一个游戏的开始界面(小白第一篇博客)

    Python 用pygame 做一个游戏的开始界面(小白第一篇博客) 主要功能实现 本篇文章主要是实现了一个游戏开始界面的两个功能: 1,将鼠标放到"开始游戏"或"结束游 ...

最新文章

  1. 使用pydub做静音帧去除
  2. 30KVA UPS电源安装电线的配置
  3. 【转】SAP Cloud Platform平台下,ABAP人员的出路在哪里
  4. php ?redis,PHP使用Redis存储Session
  5. 每日一题(31)—— 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
  6. docsify神奇的文档网站生成工具
  7. java session使用_Java互联网架构-高负载集群架构如何解决session一致性问题
  8. CentOS7.0下NTP时间同步服务
  9. 从rpm包中提取文件的命令
  10. SAP License:MM常用事物码
  11. Python知识点-py2和py3编码
  12. js判断json对象中是否含有某个属性
  13. datagrid数据导出到excel文件给客户端下载的几种方法(转)
  14. linux zip压缩比1000,linux下压缩工具总结与使用(参考私房菜)
  15. JavaScript下载文件到本地的方法总结
  16. (pythonQQ群管理)通过selenium 自动批量删除QQ群成员
  17. 通过软件调整显示器的扩展、复制、显示器输入源
  18. 软件配置管理的作用?软件配置包括什么?
  19. C语言从入门到放弃2022年8月3号
  20. MySQL数据库基本命令

热门文章

  1. PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现
  2. 微信开发-js接口的使用无法使用分享功能的一些说明
  3. python 猜姓氏程序 7个问题知道你姓啥
  4. AI基础实战营打卡笔记
  5. JS事件监听手机屏幕触摸事件 Touch
  6. From scikit-learn to Spark ML
  7. 读书笔记:《流畅的Python》第21章 类元编程
  8. 中国式IT运维,趟出自己的“长期主义”河流
  9. ffmpeg学习 函数分析sws_scale
  10. sws_scale函数像素数据格式的转换yuv转rgba