2011-08-31 71 views
0

我创建了一些非常复杂的Python代码,但它基本上要求输入,然后根据给定的输入以及一些图和许多等式输出一个巨大的DNA序列。我想将这段代码嵌入到用户界面中,我很可能会用wxPython或Tkinter进行操作。我不明白如何将我的代码插入用户界面。请帮忙!谢谢!将Python代码嵌入到GUI中

回答

0

GUI将处理您的输入和输出。因此,如果您的代码当前是一个可以读取和写入控制台的大而长的脚本,那么您首先需要将其重构为一个类或一组独立函数(取决于您的代码),它们将输入作为参数,并返回结果。如果你写得很好,你甚至可以保留你的控制台应用程序,同时让其他应用程序可以导入类或函数。

伪例如:

# stuff.py 

class StuffDoer: 
    def __init__(self, val1, val2, ...): 
     self.val1 = val1 
     self.val2 = val2 

    def calculate_sequence(self): 
     # do some stuff 
     return sequence 

    def create_graph(self, target_folder): 
     # generate the graph and save it 
     return path_to_graph 

if __name__ == '__main__': 
    # the console interface 
    val1 = raw_input('Enter value 1:') 
    val2 = raw_input('Enter value 2:') 

    s = StuffDoer(val1, val2) 
    seq = s.calculate_sequence() 
    print('Sequence: %s' % seq) 
    path = s.create_graph('/temp') 
    print('Wrote graph to %s' % path) 

你可能已经知道这一点,但如果你直接运行在模块内if __name__ == '__main__':的代码才会执行​​。如果你使用import stuff来代替另一个模块(比如你的GUI代码),那么你只需要访问stuff.StuffDoer类的定义。

下面是GUI代码中发生的示例。在点击某个按钮之类的界面事件后,您将调用一个函数,从窗体上的某些字段中检索输入,并将它们提供给StuffDoer的一个实例,并调用您需要的任何类函数来生成结果。如果没有问题,则使用生成的结果更新表单,然后完成。如何做到这一点的细节取决于你的GUI工具包。

您的GUI不需要知道如何计算DNA序列,您的DNA测序模块不需要知道输入来自何处或输出如何显示。

0

你的问题并不十分清楚,但如果你想要的用户输入是Python代码,你想为你的GUI工具包找到一个Python代码编辑器小部件。

例如,如果您正在使用PyQt的,你可以使用QScintilla,看到here for an example

+0

是啊,我想加入两个在一起,我创建的代码我gui设计,但我不明白如何做到这一点 – MIT

1

对你来说最好的建议不是开始尝试构建真正的GUI。学习GUI编程并不是微不足道的,你应该慢慢地开始,并努力工作。

选择一个框架(Tkinter,wxPython,Qt),并从最简单的教程开始。然后逐渐尝试更艰巨的任务,直到你有足够的经验来完成你真正的任务。