将我的代码与 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

中调用它