WxPython建立批量录入框窗口


Posted in Python onFebruary 27, 2019

有个小项目,碰到需要批量建立输入框的需求,本文利用WxPython建立批量录入框窗口

研究了一下WxPython ,实现了这个功能。

# coding=utf-8
"""
模块标题:界面相关
模块功能:显示批量录入框窗口。
开发人员:seakingx
建立时间:2018.04.28
最后修改:2018.04.29
"""
 
import wx
 
class GUIFrame(wx.Frame):
  def __init__(self,app_title,app_size,input_num):
    self.max_len = input_num
    wx.Frame.__init__(self, None, -1, app_title, size=(app_size[0], app_size[1]))
    panel = wx.Panel(self, -1)
    # 按钮显示文字
    self.loadButton = wx.Button(panel, label=u"处理数据")
    # 显示批量输入框
 
    self.hbox = wx.BoxSizer()
    self.hbox.Add(self.loadButton, proportion=0, flag=wx.LEFT, border=5)
    self.vbox = wx.BoxSizer(wx.VERTICAL)
    self.vbox.Add(self.hbox, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
    self.max_line = self.max_len
    self.max_row = self.max_len
    self.input_matrix = []
 
    self.init_inputbox(panel)
    panel.SetSizer(self.vbox)
 
    self.loadButton.Bind(wx.EVT_BUTTON, self.OnLoad, self.loadButton)
 
 
  def init_inputbox(self,panel):
    input_box_i = wx.BoxSizer()
    input_label = wx.StaticText(panel, label=" ", size=(20, 20), style=wx.ALIGN_LEFT)
    input_box_i.Add(input_label, proportion=0, flag=wx.LEFT, border=3)
    for i in range(self.max_line):
      input_item = wx.StaticText(panel, label=str(i+1), size=(50, 20), style=wx.ALIGN_CENTER)
      input_box_i.Add(input_item, proportion=0, flag=wx.LEFT, border=3)
 
    self.vbox.Add(input_box_i, proportion=0, flag=wx.EXPAND | wx.ALL, border=1)
    for j in range(self.max_row):
      input_box_i = wx.BoxSizer()
      input_list = []
      input_label = wx.StaticText(panel, label=str(j + 1), size=(20, 25), style=wx.ALIGN_LEFT)
      input_box_i.Add(input_label, proportion=0, flag=wx.LEFT, border=3)
      for i in range(self.max_line):
 
        input_item = wx.TextCtrl(panel,size=(50,25))
        input_box_i.Add(input_item, proportion=0, flag=wx.LEFT, border=3)
        input_list.append(input_item)
 
      self.vbox.Add(input_box_i, proportion=0, flag=wx.EXPAND | wx.ALL, border=1)
      self.input_matrix.append(input_list)
 
 
  def OnLoad(self,event):
    self.showMsg(u"开始处理", u"提示")
 
  def showMsg(self,msg,title):
    wx.MessageBox(msg, title, wx.OK | wx.ICON_INFORMATION)
 
 
if __name__ == '__main__':
  # 界面提示文字
  show_info = u"数据处理工具"
  app = wx.App()
  # 建立一个10*10的录入窗口
  frame = GUIFrame(show_info, [800, 450],10)
  frame.Show()
  app.MainLoop()

如果输入项目更多, 可能用GRID更合适。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中尾递归用法实例详解
Apr 28 Python
星球大战与Python之间的那些事
Jan 07 Python
python中的编码知识整理汇总
Jan 26 Python
python内置函数:lambda、map、filter简单介绍
Nov 16 Python
对python中执行DOS命令的3种方法总结
May 12 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
python字符串反转的四种方法详解
Dec 02 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python实现随机生成迷宫并自动寻路
Jun 13 Python
基于Python实现将列表数据生成折线图
Mar 23 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 #Python
Python中类的创建和实例化操作示例
Feb 27 #Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 #Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 #Python
详解Django-restframework 之频率源码分析
Feb 27 #Python
Python的UTC时间转换讲解
Feb 26 #Python
Python逐行读取文件中内容的简单方法
Feb 26 #Python
You might like
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
教大家制作简单的php日历
2015/11/17 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
Vue表单实例代码
2016/09/05 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
python带参数打包exe及调用方式
2019/12/21 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
我为自己代言广告词
2014/03/18 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL