我正在做简单的文件I / O.我有一个目录特征SaveDir
和一个文件特征SaveFile
。如何访问GUI中输入的目录路径,或默认?例如,我想打印出来,如下例所示。
我是否使用get_value,例如SaveDir.get_value
?我无法弄明白......
一旦我可以访问该值,我想创建一个路径字符串,我可以打开文件进行写入,例如self.writefile = open(path,'w')
。
谢谢, 科斯莫
class ControlPanel(HasTraits):
SaveFile = Str("MyDAta")
SaveDir = Directory("C:/My Documents/Data")
view = View(Item('SaveFile',label='Save Filename',style='simple'),Item('SaveDir',label='Data Directory', style='simple'))
print SaveDir
答案 0 :(得分:0)
您需要创建该类的实例,然后在其上调用configure_traits。然后你可以检查它的SaveDir特性。通常,您会创建更改通知方法和/或按钮。
请参阅此处引用的材料: https://support.enthought.com/entries/22878645-Introductory-materials-for-Traits-and-Traits-UI
然后,我建议你从一个只有字符串和整数的类开始,并学习如何使用它们。如果您愿意,您将能够将其扩展到目录(尽管对于真实世界的程序,目录特征相当不灵活,而其他方式通常更可取。)
更新:您可以在Canopy User Python directory的Examples/traitsui-4.2.0
子目录中找到许多有用的示例。
更新2:有关更有用的文件选择对话框,请参阅pyface包,特别是: https://github.com/enthought/pyface/blob/master/pyface/i_file_dialog.py
答案 1 :(得分:0)
关注@Jon(我认为这就是他的意思),可以在类中的方法内作为字符串访问目录。特别是,按钮的方法内部工作。
我不清楚这一点,但调用该方法的接缝也会创建类self
的实例ControlPanel
。这是对的吗?
class ControlPanel(HasTraits):
SaveFile = Str("MyDAta")
SaveDir = Directory("C:/My Documents/Data")
start = Button("Start Measurements")
view = View(Item('SaveFile',label='Save Filename',style='simple'),
Item('SaveDir',label='Data Directory', style='simple'),
UItem('start',style='custom'))
def _start_fired(self):
print self.SaveDir
打印:
C:/我的文件/数据