求高手用wxpython编一个可以修改其它文档参数的界面程序

求高手用wxpython为我编一个小程序,这个程序上有一个按钮,按一下后会弹出一个对话框,对话框中要求输入二个参数(如x,y)的值,而且要有默认值的。然后点确定后这两个参... 求高手用wxpython为我编一个小程序,这个程序上有一个按钮,按一下后会弹出一个对话框,对话框中要求输入二个参数(如x,y)的值,而且要有默认值的。然后点确定后这两个参数值会传递到其它文件(如script.txt)中,修改script.txt文档中相应的的x.y两个参数的值。我的邮箱285023500@qq.com,或者可以直接加我这个QQ。谢谢了。
不好意思,写错了,是script.py文件。我没有财富值了,跪求高手帮忙啊。
展开
 我来答
百度网友57c441c
2012-06-04 · TA获得超过307个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:218万
展开全部
#coding=utf-8
'''
Created on 2012-6-4

@author: Administrator

@note:
以下是具体代码:
我用的Python2.7
需要在当前文件夹下创建script.py
'''
import wx

class TestPanel(wx.Panel):

def __init__(self, parent):
wx.Panel.__init__(self, parent)

#修改位置,在读取的时候获取,在修改文件的时候使用
self.offsetx = 0
self.offsety = 0

self.initGUI()

def initGUI(self):
self.createWidgets()
self.setPrepertise()
self.doyout()

def createWidgets(self):
self.xshow_textCtrl = wx.TextCtrl(self, -1)
self.yshow_textCtrl = wx.TextCtrl(self, -1)
self.change_btn = wx.Button(self, -1, label = u"修改")

self.Bind(wx.EVT_BUTTON, self.onChange, self.change_btn)

def onChange(self, evt):
#获取修改的属性
x = self.xshow_textCtrl.GetLabelText()
y = self.yshow_textCtrl.GetLabelText()

fl = open("script.py", "w")
#找到相应位置修改
fl.seek(self.offsetx)
fl.write("x = %s\n" % x)
fl.seek(self.offsety)
fl.write("y = %s\n" % y)
fl.close()

def doyout(self):
mainSizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(mainSizer)

#x显示
xSizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add(xSizer, 1, wx.EXPAND)
x_label = wx.StaticText(self, -1, label = "X:")
xSizer.Add(x_label, 0, wx.ALL, 10)
xSizer.Add(self.xshow_textCtrl, 0, wx.ALL, 10)

#y显示
ySizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add(ySizer, 1, wx.EXPAND)
y_label = wx.StaticText(self, -1, label = "Y:")
ySizer.Add(y_label, 0, wx.ALL, 10)
ySizer.Add(self.yshow_textCtrl, 0, wx.ALL, 10)

#按键
mainSizer.Add(self.change_btn, 0, wx.ALL, 10)

def setPrepertise(self):
x, y = self.getXY()
self.xshow_textCtrl.SetLabel(str(x))
self.yshow_textCtrl.SetLabel(str(y))

def getXY(self):
fl = open("script.py", "r")
msg = ""
line = fl.readline()
while line and line[-1]:

if line.startswith("x"):
msg += line
self.offsetx = fl.tell() - len(line)#得到x那行的起始位置
elif line.startswith("y"):
msg += line
self.offsety = fl.tell() - len(line)#得到y那行的起始位置
line = fl.readline()
x = 0
y = 0
exec msg#给x,y赋值
return x, y

class TestFrame(wx.Frame):

def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, None, title = u"测试Frame", size = (400, 300),
pos = (400, 200))
TestPanel(self)

if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式