我创建了一些非常复杂的Python代码,但它基本上要求输入,然后根据给定的输入输出一个巨大的DNA序列,以及一些图形和许多方程式。我想将此代码嵌入到用户界面中,我很可能会使用wxPython或Tkinter。我不明白如何将我的代码插入用户界面。请帮忙!谢谢!
答案 0 :(得分:1)
一个好的起点是wxPython tutorial。
答案 1 :(得分:1)
最好的建议是不要开始尝试构建实际的GUI。学习GUI编程并不是一件容易的事情,你应该慢慢开始并努力实现真实的东西。
选择一个框架(Tkinter,wxPython,Qt)并从您可以找到的最简单的教程开始。然后尝试逐步更难的任务,直到你有足够的经验来完成你的真实任务。
答案 2 :(得分:0)
您的问题并不十分明确,但如果您想要的用户输入是Python代码,那么您希望为您的GUI工具包找到一个Python代码编辑器小部件。
例如,如果您使用的是PyQT,则可以使用QScintilla,请参阅here for an example
答案 3 :(得分: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__':
中的代码。如果您从另一个模块(例如您的GUI代码)改为import stuff
,您将只能访问stuff.StuffDoer
类的定义。
以下是GUI代码中发生的事情的示例。在某些界面事件(如单击按钮)上,您将调用一个函数,该函数从表单上的某些字段检索输入,将它们提供给StuffDoer
的实例,并调用生成结果所需的任何类函数。如果没有问题,您可以使用生成的结果更新表单,然后就完成了。有关如何执行此操作的详细信息取决于您的GUI工具包。
您的GUI不需要知道DNA序列的计算方式,您的DNA测序模块不需要知道输入的来源或输出的显示方式。