将我的代码与 wxglade GUI 集成
Integrating my code with a wxglade GUI
我对 python 很陌生。我这学期选修了生物信息学 class,对于我的期末项目,我想创建一个我们将来可以在我的实验室中使用的应用程序。我已经在 PyCharm 中创建并测试了实际程序,但我想将它与 GUI 集成并创建一个可执行文件,以便任何人都可以使用它而无需打开 IDE.
到目前为止,我有一个带有按钮的简单框架,用于获取输入文件的路径。我想走这条路并将其插入到我现有的代码中。来自 wxGlade
代码,嵌套在 class MyFrame(wx.Frame):
下:
def OnOpenFileDialog(self, event): # wxGlade: MyFrame.<event_handler>
dlg = wx.FileDialog(self, message="Choose a file")
if dlg.ShowModal() ==wx.ID_OK:
f = dlg.GetPath()
filename_input = re.sub("\\", "/", f)
dlg.Destroy()
我想把filename_input
放在这里:
columns = defaultdict(list) # each value in each column is appended to a list
with open(filename_input) as file_object: # open the file
reader = csv.DictReader(file_object, delimiter='\t') # assign the file reader
for row in reader: # read a row as {column1: value1, column2: value2,...}
for (k,v) in row.items(): # for each column (position) and value (residue)
if v != '': # if the value isn't blank
columns[k].append(v) # append the residue to a list for that position
但似乎在 OnOpenFileDialog
块中定义的任何内容都只存在于该块中。那么我应该如何将我的代码集成到 GUI 中呢?我觉得把它全部粘贴到 def OnOpenFileDialog
下会非常丑陋和糟糕。我真的不知道从哪里开始。抱歉,如果这个问题令人困惑,我会在需要时尝试澄清。谢谢
定义方法 read_file(filename)
并在 OnOpenFileDialog
中调用它
我对 python 很陌生。我这学期选修了生物信息学 class,对于我的期末项目,我想创建一个我们将来可以在我的实验室中使用的应用程序。我已经在 PyCharm 中创建并测试了实际程序,但我想将它与 GUI 集成并创建一个可执行文件,以便任何人都可以使用它而无需打开 IDE.
到目前为止,我有一个带有按钮的简单框架,用于获取输入文件的路径。我想走这条路并将其插入到我现有的代码中。来自 wxGlade
代码,嵌套在 class MyFrame(wx.Frame):
下:
def OnOpenFileDialog(self, event): # wxGlade: MyFrame.<event_handler>
dlg = wx.FileDialog(self, message="Choose a file")
if dlg.ShowModal() ==wx.ID_OK:
f = dlg.GetPath()
filename_input = re.sub("\\", "/", f)
dlg.Destroy()
我想把filename_input
放在这里:
columns = defaultdict(list) # each value in each column is appended to a list
with open(filename_input) as file_object: # open the file
reader = csv.DictReader(file_object, delimiter='\t') # assign the file reader
for row in reader: # read a row as {column1: value1, column2: value2,...}
for (k,v) in row.items(): # for each column (position) and value (residue)
if v != '': # if the value isn't blank
columns[k].append(v) # append the residue to a list for that position
但似乎在 OnOpenFileDialog
块中定义的任何内容都只存在于该块中。那么我应该如何将我的代码集成到 GUI 中呢?我觉得把它全部粘贴到 def OnOpenFileDialog
下会非常丑陋和糟糕。我真的不知道从哪里开始。抱歉,如果这个问题令人困惑,我会在需要时尝试澄清。谢谢
定义方法 read_file(filename)
并在 OnOpenFileDialog