欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WxPython建立批量录入框窗口

程序员文章站 2023-10-19 09:00:37
有个小项目,碰到需要批量建立输入框的需求,本文利用wxpython建立批量录入框窗口 研究了一下wxpython ,实现了这个功能。 # coding=utf-...

有个小项目,碰到需要批量建立输入框的需求,本文利用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更合适。

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