求助!谢了一个读取并显示CSV文件的小软件,运行后读取CSV文件后软件就无法退出了,而且软件会挂掉!(GUI:wxpython)

malor0302 2015-09-09 10:31:54

# coding=cp936

import os
import wx
import wx.grid


class MainWindow(wx.Frame):
colLabels = ["RM Delay","Send","Recv","Direction","Len","Data(Hex)","Comment"]
def __init__(self):
wx.Frame.__init__(self,None,title = "消息发生器脚本编辑器",size = (855,472))
menuFile = wx.Menu()
menuFile.Append(1, "&打开")
menuFile.AppendSeparator()
menuFile.Append(2, "&保存")
menuFile.Append(3, "&另存为")
menuFile.AppendSeparator()
menuFile.Append(4, "&关于")
menuFile.Append(5, "退出")
menuBar = wx.MenuBar()
menuBar.Append(menuFile, "文件")
self.SetMenuBar(menuBar)
self.Bind(wx.EVT_MENU, self.About, id=4)
self.Bind(wx.EVT_MENU, self.Quit, id=5)
self.Bind(wx.EVT_MENU, self.OpenFile, id=1)
self.filedir = "当前脚本路径"
self.CreateStatusBar()
self.SetStatusText(self.filedir)
self.grid = wx.grid.Grid(self)
self.row_num = 18
self.grid.CreateGrid(self.row_num-1,7)
self.grid.SetColSize(0,70)
self.grid.SetColSize(1,55)
self.grid.SetColSize(2,55)
self.grid.SetColSize(4,55)
self.grid.SetColSize(5,360)
for col in range(7):
self.grid.SetColLabelValue(col,self.colLabels[col])
self.attr = wx.grid.GridCellAttr()
self.attr.SetBackgroundColour(wx.Colour(210,232,251))

def About(self,event):
wx.MessageBox("无线脚本编辑器V1.0.0 | 协议版本V1.0.0","关于",wx.OK|wx.ICON_INFORMATION,self)

def Quit(self,event):
self.Close()

def OpenFile(self,event):
app = wx.App()
wildcard = "选择脚本文件 (*.csv)|*.csv|所有文件(*.*)|*.*"
dialog = wx.FileDialog(self, "选择脚本", os.getcwd(),
"", wildcard, wx.OPEN)
if dialog.ShowModal() == wx.ID_OK:
self.filedir = dialog.GetPath()
self.SetStatusText(self.filedir)
oldrows = self.row_num
data = file(self.filedir,'rb')
lines = data.readlines()
self.row_num = len(lines)
self.grid.ClearGrid()
if self.row_num > oldrows:
addrows = self.row_num - oldrows
self.grid.AppendRows(addrows)
if self.row_num < oldrows:
delrows = oldrows - self.row_num
self.grid.DeleteRows(pos = self.row_num-1,numRows = delrows)
for i in range(1,self.row_num):
Lines = lines[i].split(',')
for y in range(1,7):
self.grid.SetCellValue(i-1,y-1,"%s"%Lines[y])
data.close()
dialog.Destroy()

app = wx.App()
frame = MainWindow()
frame.Show()
app.MainLoop()
...全文
101 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧