将我的代码与wxglade GUI集成

时间:2017-12-15 17:41:09

标签: python user-interface wxglade

我是python的新手。我在本学期参加了一个生物信息学课程,对于我的最终项目,我想创建一个我们将来可以在我的实验室中使用的应用程序。我已经在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下粘贴它会非常丑陋和糟糕。我真的不知道从哪里开始。对不起,如果这个问题令人困惑,我会尽量澄清是否需要。感谢

1 个答案:

答案 0 :(得分:1)

定义方法.container-shader { ... height: 100vh; } 并从read_file(filename)

中调用它