上期我们做了一个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功能强大,对于我们够用。我们首先看官方的例子:
code1
可以看出与matplotlib作图并无差别,仅将函数修改,故我们将我们之前文章制作的两个模块进行修改。
code2
Plotfig为原绘图模块,我们暂时保留备用,新的绘图模块为MxPlotfig.第二步我们进行Dope读取文件的框架设计,如图:
fig1
主要是比较文件(单个)与dope绘图数据文件(单个或多个)的读入。然后是绘图与删除按钮。故采用wxpython的Boxsizer进行界面布局。
code3
其中对模块用bind将函数与构建桥接。这个如果熟悉wxpython应该是比较简单的。
接下来我们编写选择单文件与选择多文件函数。
code4
两个都是FileDialog,一个为单文件读取,一个为多文件读取,其余一样,选择后我们将值付给之前设计的文本框,当选择文件后,值将显示在文本框中,最后我们进行计算函数的设计。
code5
这一块自己还是没有设计的很好,比较死板,第一为必须有比较文件的输入,后期需要写个
if判定,第二就是文件名必须在比对文件中找到,否则会读取错误。但是基本还是实现了内容,后期再进行修改。最后进行类的包裹与初始函数的读取。
code6
这样DOPE模块的GUI已经写好了,虽然不完美,但是基本内容都已经实现了。我们来一起看看我们的成果把
首先是读入界面:
读入文件
然后是绘图:
绘图示例
wxmplot本身带了图形的设置保存等等功能。
图形设置
更多原创精彩内容敬请关注生信杂谈:











网友评论