同源建模从入门到精通开发篇(二)

上期我们做了一个DOPE评分功能的内容,虽然封装了模块化,但是仍然没有达到我们GUI的效果,python GUI比较有名为pyqt,wxpython以及tkinter,之前使用tkinter开发过许多内容,pymol许多功能同样是使用tkinter和pmw模块完成,不得不佩服python的巧夺天工,但缺点就是界面丑,所以想借此机会使用wxpython进行完成。[注:阅读此文档需要有wxpython基础]
首先需要考虑的是matlibplot与wxpython的桥接,matlibplot本身与wxpython有通讯通道,但是有人对其进行了封装,名为wxmplot,我们可以进行pip简单安装:

pip install wxmplot

具体内容可以查看官方文档,其有一个PlotFrame方法用以展示图片,oplot画线图,scatterplot画点图,虽然没有matlibplot功能强大,对于我们够用。我们首先看官方的例子:

同源建模从入门到精通开发篇(二)_第1张图片
code1

可以看出与matplotlib作图并无差别,仅将函数修改,故我们将我们 之前文章制作的两个模块进行修改。

同源建模从入门到精通开发篇(二)_第2张图片
code2

Plotfig为原绘图模块,我们暂时保留备用,新的绘图模块为MxPlotfig.
第二步我们进行Dope读取文件的框架设计,如图:

同源建模从入门到精通开发篇(二)_第3张图片
fig1

主要是比较文件(单个)与dope绘图数据文件(单个或多个)的读入。然后是绘图与删除按钮。故采用wxpythonBoxsizer进行界面布局。

同源建模从入门到精通开发篇(二)_第4张图片
code3

其中对模块用bind将函数与构建桥接。这个如果熟悉wxpython应该是比较简单的。
接下来我们编写选择单文件与选择多文件函数。

同源建模从入门到精通开发篇(二)_第5张图片
code4

两个都是FileDialog,一个为单文件读取,一个为多文件读取,其余一样,选择后我们将值付给之前设计的文本框,当选择文件后,值将显示在文本框中,最后我们进行计算函数的设计。

同源建模从入门到精通开发篇(二)_第6张图片
code5

这一块自己还是没有设计的很好,比较死板,第一为必须有比较文件的输入,后期需要写个 if判定,第二就是文件名必须在比对文件中找到,否则会读取错误。但是基本还是实现了内容,后期再进行修改。最后进行类的包裹与初始函数的读取。

同源建模从入门到精通开发篇(二)_第7张图片
code6

这样DOPE模块的GUI已经写好了,虽然不完美,但是基本内容都已经实现了。我们来一起看看我们的成果把
首先是读入界面:


同源建模从入门到精通开发篇(二)_第8张图片
读入文件

然后是绘图:

同源建模从入门到精通开发篇(二)_第9张图片
绘图示例

wxmplot本身带了图形的设置保存等等功能。

同源建模从入门到精通开发篇(二)_第10张图片
图形设置

更多原创精彩内容敬请关注生信杂谈

同源建模从入门到精通开发篇(二)_第11张图片

你可能感兴趣的:(同源建模从入门到精通开发篇(二))