<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>joolix.com &#187; Chemistry</title>
	<atom:link href="http://joolix.com/category/chemistry/feed/" rel="self" type="application/rss+xml" />
	<link>http://joolix.com</link>
	<description>Joolix, linux everywhere!</description>
	<lastBuildDate>Thu, 22 Jul 2010 03:33:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Linux 下转换 Thermo 质谱 RAW 文件到 MZXML 格式的脚本</title>
		<link>http://joolix.com/2010/05/thermo-mass-raw-to-mzxml-convertor-in-linux/</link>
		<comments>http://joolix.com/2010/05/thermo-mass-raw-to-mzxml-convertor-in-linux/#comments</comments>
		<pubDate>Thu, 06 May 2010 04:18:24 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[command]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=383</guid>
		<description><![CDATA[如题
由于最近开始做质谱方面的工作，实验室使用的液质联用仪是 Thermo 的. Thermo 使用了自己的封闭格式 (raw) 保存实验数据，其软件 Xcaliber 只有 windows 平台的，而我平时的工作平台是纯 linux（即使它有 linux 平台的软件，我也不喜欢封闭的格式，因为要 hack 起来不容易的缘故），所以我就想将 raw 文件转换成开放的格式（比如 mzxml）。google了一下，发现有一个 window 命令行程序 ReAdW.exe 可以将其转换成 mzxml，赫赫，这不就是我需要的么，而且是命令行的容易批量化，虽然是 windows 下的，不过程序很简单应该可以用 wine 运行。参考了它的说明，说是要求 Xcaliber 的一个 dll （XRawfile2.dll）, 考虑到这些 dll 一个依赖一个的，干脆连 Xcaliber 也wine 了。wine 安装 Xcaliber，成功（运行出错，不管，反正只要它的 dll），然后测试 wine 运行了一下 ReAdW.exe，可以转换成功，哈哈，摆脱封闭的 raw 格式胜利在望，鉴于 dos 命令行参数输入方式的奇怪与路径样子的恶心，我决定将其封装成一个 bash 脚本，用 linux 命令行的方式来使用它，花了2-30分钟写好了这个脚本（额，好久没写 bash 脚本，这速度是有点丢人，其中还得到 骨哥 （bones7456）童鞋的帮助，在此表示谢意）. 脚本见下：
<span class="readmore"><a href="http://joolix.com/2010/05/thermo-mass-raw-to-mzxml-convertor-in-linux/" title="Linux 下转换 Thermo 质谱 RAW 文件到 MZXML 格式的脚本" target="_blank">阅读全文——共1350字</a></span>]]></description>
			<content:encoded><![CDATA[<p>如题<br />
由于最近开始做质谱方面的工作，实验室使用的液质联用仪是 Thermo 的. Thermo 使用了自己的封闭格式 (raw) 保存实验数据，其软件 Xcaliber 只有 windows 平台的，而我平时的工作平台是纯 linux（即使它有 linux 平台的软件，我也不喜欢封闭的格式，因为要 hack 起来不容易的缘故），所以我就想将 raw 文件转换成开放的格式（比如 mzxml）。google了一下，发现有一个 window 命令行程序 ReAdW.exe 可以将其转换成 mzxml，赫赫，这不就是我需要的么，而且是命令行的容易批量化，虽然是 windows 下的，不过程序很简单应该可以用 wine 运行。参考了它的说明，说是要求 Xcaliber 的一个 dll （XRawfile2.dll）, 考虑到这些 dll 一个依赖一个的，干脆连 Xcaliber 也wine 了。wine 安装 Xcaliber，成功（运行出错，不管，反正只要它的 dll），然后测试 wine 运行了一下 ReAdW.exe，可以转换成功，哈哈，摆脱封闭的 raw 格式胜利在望，鉴于 dos 命令行参数输入方式的奇怪与路径样子的恶心，我决定将其封装成一个 bash 脚本，用 linux 命令行的方式来使用它，花了2-30分钟写好了这个脚本（额，好久没写 bash 脚本，这速度是有点丢人，其中还得到 骨哥 （bones7456）童鞋的帮助，在此表示谢意）. 脚本见下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td><td class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Name:     rawconv.sh</span>
<span style="color: #666666; font-style: italic;"># Author:   xiooli &lt;xioooli[at]yahoo.com.cn&gt;</span>
<span style="color: #666666; font-style: italic;"># Site:     http://joolix.com</span>
<span style="color: #666666; font-style: italic;"># Licence:  GPLv3</span>
<span style="color: #666666; font-style: italic;"># Version:  100506</span>
<span style="color: #666666; font-style: italic;"># convert the Thermo mass raw file to mzXML file</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">WINEPREFIX</span>=<span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>.wine
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #ff0000;">&quot;`which wine 2&gt;/dev/null`&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>;<span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'ERR: This scripe need wine installed!'</span>
    <span style="color: #7a0874; font-weight: bold;">exit</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;`dirname $0`&quot;</span><span style="color: #000000; font-weight: bold;">/</span>ReAdW.exe <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #007800;">ReAdW</span>=<span style="color: #ff0000;">&quot;`dirname $0`&quot;</span><span style="color: #000000; font-weight: bold;">/</span>ReAdW.exe
<span style="color: #000000; font-weight: bold;">elif</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;`dirname $0`&quot;</span><span style="color: #000000; font-weight: bold;">/</span>rawconv<span style="color: #000000; font-weight: bold;">/</span>ReAdW.exe <span style="color: #7a0874; font-weight: bold;">&#93;</span>;<span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #007800;">ReAdW</span>=<span style="color: #ff0000;">&quot;`dirname $0`&quot;</span><span style="color: #000000; font-weight: bold;">/</span>rawconv<span style="color: #000000; font-weight: bold;">/</span>ReAdW.exe
<span style="color: #000000; font-weight: bold;">else</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'ERR: No ReAdW.exe found!'</span>
    <span style="color: #7a0874; font-weight: bold;">exit</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-ge</span> <span style="color: #000000;">2</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #007800;">rawfile</span>=<span style="color: #ff0000;">&quot;$1&quot;</span>
    <span style="color: #007800;">mzxmlfile</span>=<span style="color: #ff0000;">&quot;$2&quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'ERR: Two auguments at least is needed!'</span>
    <span style="color: #7a0874; font-weight: bold;">exit</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #007800;">fullpath_rawfile</span>=<span style="color: #ff0000;">&quot;Z:$(cd &quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">dirname</span> <span style="color: #007800;">$rawfile</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #ff0000;">&quot;; echo &quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">pwd</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">basename</span> <span style="color: #007800;">$rawfile</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #ff0000;">&quot;|sed 's|/|<span style="color: #000099; font-weight: bold;">\\</span>|g')&quot;</span>
<span style="color: #007800;">fullpath_mzxmlfile</span>=<span style="color: #ff0000;">&quot;Z:$(cd &quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">dirname</span> <span style="color: #007800;">$mzxmlfile</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #ff0000;">&quot;; echo &quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">pwd</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">basename</span> <span style="color: #007800;">$mzxmlfile</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #ff0000;">&quot;|sed 's|/|<span style="color: #000099; font-weight: bold;">\\</span>|g')&quot;</span>
&nbsp;
wine <span style="color: #ff0000;">&quot;$ReAdW&quot;</span>  <span style="color: #660033;">--mzXML</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">&quot;$fullpath_rawfile&quot;</span> <span style="color: #ff0000;">&quot;$fullpath_mzxmlfile&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2010/05/thermo-mass-raw-to-mzxml-convertor-in-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Archlinux 下 ICC+MKL 方案编译 GAMESS</title>
		<link>http://joolix.com/2010/01/compile-gamess-with-icc-and-mkl-under-archlinux/</link>
		<comments>http://joolix.com/2010/01/compile-gamess-with-icc-and-mkl-under-archlinux/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 18:05:53 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>
		<category><![CDATA[essay]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=346</guid>
		<description><![CDATA[点此下载效果更好的 pdf 版本
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Archlinux 下 ICC+MKL 方案编译安装 GAMESS
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;作者: xiooli
<span class="readmore"><a href="http://joolix.com/2010/01/compile-gamess-with-icc-and-mkl-under-archlinux/" title="Archlinux 下 ICC+MKL 方案编译 GAMESS" target="_blank">阅读全文——共9444字</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://joolix.com/wp-content/uploads/2010/01/compile_gamess_in_arch.pdf">点此</a>下载效果更好的 pdf 版本</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Archlinux 下 ICC+MKL 方案编译安装 GAMESS<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;作者: xiooli<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;邮箱: <font color="#0000ff"><b>&lt;</b></font>xioooli<font color="#0000ff"><b>[</b></font>at<font color="#0000ff"><b>]</b></font>yahoo.com.cn<font color="#0000ff"><b>&gt;</b></font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;网站: <a href="http://joolix.com">http://joolix.com</a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;此文系根据自己实际操作写就，其中查考了 Sobereva 和王涛的文章 <font color="#cd00cd">(</font><font color="#ff1493">见参考文献</font><font color="#cd00cd">)</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;在此表示感谢。<br />
&nbsp;&nbsp;&nbsp;&nbsp;本文依据 CC 协议发布，在保留原作品的署名的情况下你可以自由转载或修改再发布<br />
&nbsp;&nbsp;&nbsp;&nbsp;（仅限非商业用途）</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;正文&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
一，机器配置<br />
&nbsp;&nbsp;&nbsp;&nbsp;型号: lenove ThinkCenter M8000t<br />
&nbsp;&nbsp;&nbsp;&nbsp;主板: Intel Q45<br />
&nbsp;&nbsp;&nbsp;&nbsp;CPU:&nbsp;&nbsp;&nbsp;&nbsp;Intel<font color="#cd00cd">(</font><font color="#ff1493">R</font><font color="#cd00cd">)</font>&nbsp;Core<font color="#cd00cd">(</font><font color="#ff1493">TM</font><font color="#cd00cd">)</font><font color="#00cd00">2</font>&nbsp;Quad CPU Q9550 @ <font color="#00cd00">2</font>.83GHz <font color="#cd00cd">(</font><font color="#ff1493">四核</font><font color="#cd00cd">)</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;内存: DDR3 1066MHz 2G X <font color="#00cd00">2</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;硬盘：&nbsp;&nbsp; SATA 500G 7200RPM</p>
<p>二，系统及编译环境<br />
&nbsp;&nbsp;&nbsp;&nbsp;系统: Archlinux x86_64<br />
&nbsp;&nbsp;&nbsp;&nbsp;内核: <font color="#00cd00">2</font>.<font color="#00cd00">6</font>.<font color="#00cd00">32</font>-ARCH<br />
&nbsp;&nbsp;&nbsp;&nbsp;SHELL:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bash:&nbsp;&nbsp; version <font color="#00cd00">4</font>.<font color="#00cd00">0</font>.<font color="#00cd00">35</font><font color="#cd00cd">(</font><font color="#00cd00">2</font><font color="#cd00cd">)</font>-release<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是用户的默认登录 shell，编译操作基本上都是在 bash 里面完成的<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csh:&nbsp;&nbsp;&nbsp;&nbsp;tcsh <font color="#00cd00">6</font>.<font color="#00cd00">17</font>.<font color="#00cd00">00</font>&nbsp;<font color="#cd00cd">(</font><font color="#ff1493">Astron</font><font color="#cd00cd">)</font>&nbsp;<font color="#00cd00">2009-07-10</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因 gamess 的很多脚本是用 csh 写成，故而需要安装 csh <font color="#cd00cd">(</font><font color="#ff1493">包名是 tcsh</font><font color="#cd00cd">)</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;C 编译器:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GCC:&nbsp;&nbsp;&nbsp;&nbsp;<font color="#00cd00">4</font>.<font color="#00cd00">4</font>.<font color="#00cd00">2</font>&nbsp;<font color="#00cd00">20091208</font>&nbsp;<font color="#cd00cd">(</font><font color="#ff1493">prerelease</font><font color="#cd00cd">)</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GCC 是默认的编译器，可以从你发行版的软件源里面安装<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ICC:&nbsp;&nbsp;&nbsp;&nbsp;Version <font color="#00cd00">11</font>.<font color="#00cd00">1</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intel 的 CPU 用 ICC 可以优化执行性能，其他 CPU 的同学可以不必使用 ICC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要去 intel 的官网下载安装，个人和非商业使用只需注册一下，免费使用<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-设置开始&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ICC 一般是安装到 /opt 里面去的，系统并不能直接找到其可执行文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以需要将其 bin 目录加到 PATH 环境变量里面去<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以我为例:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 /opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">1</font>/<font color="#00cd00">056</font>/bin/ 下面有两个文件一个目录（依系统位数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的不同，目录的名字可能不一样）: intel64/, iccvars.csh 和 iccvars.sh，你<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要在 /etc/profile.d/ 下面建立一个脚本，比如 iccvars.sh 其内容如下:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000">#!/bin/bash</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source /opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">1</font>/<font color="#00cd00">056</font>/bin/iccvars.sh intel64<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后的那个参数 intel64 依你的系统不同而不同，应该和你在<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">1</font>/<font color="#00cd00">056</font>/bin/ 中看的的目录名字相同，然后赋可执行权限:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sudo chmod a+x /etc/profile.d/iccvars.sh</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意，这样只会在重启后生效，若要当时生效，须执行一下：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>&nbsp;&nbsp;. </b></font>/etc/profile.d/iccvars.sh 或 source /etc/profile.d/iccvars.sh</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此外，为了让程序（这里是 icc 等）找到它们所依赖的库，须得将 icc 的 lib<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;路径加入到 /etc/ld.so.conf 里面<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以我为例:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 /etc/ld.so.conf 里面加上一行：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">1</font>/<font color="#00cd00">056</font>/lib/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后以 root 权限运行 ldconfig<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ICC 的设置到此结束<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-设置结束&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;FORTRAN 编译器:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFORT:&nbsp;&nbsp;Version <font color="#00cd00">11</font>.<font color="#00cd00">0</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个也是 intel 的编译器，同样需要去其官方注册下载，个人版也是免费的<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当然你也可以使用 g95 等开源的 FORTRAN 编译器<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-设置开始&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFORT 同样也是安装到 /opt 里面去的，所以也需要将其 bin 目录加到 PATH<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;环境变量里面去<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以我为例:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 /opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">0</font>/<font color="#00cd00">074</font>/bin/ 下面有两个文件一个目录（依系统位数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的不同，目录的名字可能不一样）: intel64/, ifortvars.csh 和 ifortvars.sh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;你亦需要在 /etc/profile.d/ 下面建立一个脚本，比如 ifortvars.sh 其内容如下:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000">#!/bin/bash</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source /opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">0</font>/<font color="#00cd00">074</font>/bin/ifortvars.sh intel64<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后的那个参数 intel64 依你的系统不同而不同，应该和你在<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">0</font>/<font color="#00cd00">074</font>/bin/ 中看的的目录名字相同，然后赋可执行权限:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sudo chmod a+x /etc/profile.d/ifortvars.sh</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意，这样只会在重启后生效，若要当时生效，须执行一下：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>&nbsp;&nbsp;. </b></font>/etc/profile.d/ifortvars.sh 或 source /etc/profile.d/ifortvars.sh</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此外，为了让程序（这里是 icc 等）找到它们所依赖的库，须得将 ifort 的 lib<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;路径加入到 /etc/ld.so.conf 里面<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以我为例:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 /etc/ld.so.conf 里面加上一行：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/opt/intel/Compiler/<font color="#00cd00">11</font>.<font color="#00cd00">0</font>/<font color="#00cd00">074</font>/lib/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后以 root 权限运行 ldconfig<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFORT 的设置到此结束<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-设置结束&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;数学库:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MKL: Version <font color="#00cd00">10</font>.<font color="#00cd00">2</font>.<font color="#00cd00">3</font>.<font color="#00cd00">029</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个是 intel 的数学核心函数库，据说使用ifort编译器结合MKL数学库可以使<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代码执行速度大大提升。当然你如果不使用 MKL 的话会默认使用 BLAS 这个库<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AMD CPU 的同学可以考虑使用 ACML 这个数学库。同样，MKL 也可以到 intel 的<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;官网上面申请免费版本<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-设置开始&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MKL 的设置相对简单，因为其只是一些库，没有可执行文件，所以只需要将 MKL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;库的位置加到 ld.so.conf 里面即可<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 /etc/ld.so.conf 里面加上一行：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/opt/intel/mkl/<font color="#00cd00">10</font>.<font color="#00cd00">2</font>.<font color="#00cd00">3</font>.<font color="#00cd00">029</font>/lib/em64t/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-不含此线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后以 root 权限运行 ldconfig<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFORT 的设置到此结束<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff1493">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-设置结束&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></p>
<p>三，具体操作过程<br />
&nbsp;&nbsp;&nbsp;&nbsp;在配置好了上面的编译环境以后便可以进行后续的编译过程了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;首先，当然是准备 gamess 的源码咯，去 gamess 的网站上面填写申请，一般一到两天后会<br />
&nbsp;&nbsp;&nbsp;&nbsp;批下来，然后会邮件通知你下载地址，用户名和密码，然后就去拖下来咯，压缩包的大小约<br />
&nbsp;&nbsp;&nbsp;&nbsp;10M 左右，我下载的版本是: GAMESS version January <font color="#00cd00">12</font>, <font color="#00cd00">2009</font>&nbsp;R3 <font color="#0000ff"><b>for </b></font><font color="#00cd00">64</font>&nbsp;bit<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>(</b></font>x86_64 compatible<font color="#0000ff"><b>)</b></font>&nbsp;under Linux with gnu compilers<br />
&nbsp;&nbsp;&nbsp;&nbsp;然后准备一个安装目录（我将其安放在 /home/gamess 里面），将压缩包解压到安装目录下面<br />
&nbsp;&nbsp;&nbsp;&nbsp;好了，可以看到几个可执行文件:<br />
&nbsp;&nbsp;&nbsp;&nbsp;compall, comp, lked, runall 和 rungms</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;修改脚本&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;&nbsp;&nbsp;&nbsp;我们接下来将编辑这几个文件以使其符合我们自己的实际情况<br />
&nbsp;&nbsp;&nbsp;&nbsp;以我为例:<br />
&nbsp;&nbsp;&nbsp;&nbsp;compall:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">16</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;TARGET</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">linux</font>-ia64<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">17</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;/home/gamess</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">70</font>:&nbsp;&nbsp;<font color="#0000ff"><b>if </b></font>&nbsp;<font color="#0000ff"><b>(</b></font><font color="#cd00cd">$TARGET</font>&nbsp;<font color="#0000ff"><b>==</b></font>&nbsp;linux-ia64<font color="#0000ff"><b>)</b></font>&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;CCOMP</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">&#8216;icc&#8217;</font>&nbsp;<font color="#ee0000"># 没有 icc 的可以继续 gcc</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;comp:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">15</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;TARGET</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">linux</font>-ia64<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">16</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;/home/gamess</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">109</font>: <font color="#0000ff"><b>if </b></font>&nbsp;<font color="#0000ff"><b>(</b></font><font color="#cd00cd">$TARGET</font>&nbsp;<font color="#0000ff"><b>==</b></font>&nbsp;linux-ia64<font color="#0000ff"><b>)</b></font>&nbsp;&nbsp; <font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;BLAS3</font><font color="#0000ff"><b>=</b></font>/opt/intel/mkl/<font color="#00cd00">10</font>.<font color="#00cd00">2</font>.<font color="#00cd00">3</font>.<font color="#00cd00">029</font>/lib/em64t/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 如果你没有安装 MKL 的话就不要动上面这行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 由于我选择的 TARGET=linux-ia64，在 line 1507 可以看到已经是默认用了 ifort 作为 FORTRAN</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 的编译器，如果你的 TARGET 是其他的而又想用 ifort 的话，可以去对应的地方 (即</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># if ($TARGET == xxx) then 下面将 FORTRAN 编译器改成 ifort)</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;lked:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">18</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;TARGET</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">linux</font>-ia64<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">19</font>: <font color="#0000ff"><b>chdir</b></font>&nbsp;/home/gamess<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">498</font>: <font color="#0000ff"><b>if </b></font><font color="#0000ff"><b>(</b></font><font color="#cd00cd">$TARGET</font>&nbsp;<font color="#0000ff"><b>==</b></font>&nbsp;linux-ia64<font color="#0000ff"><b>)</b></font>&nbsp;<font color="#0000ff"><b>then</b></font>&nbsp;<font color="#ee0000"># 若使用 MKL 则在下面添加一行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">499</font>:&nbsp;&nbsp;&nbsp;&nbsp; setenv MKLPATH /opt/intel/mkl/<font color="#00cd00">10</font>.<font color="#00cd00">2</font>.<font color="#00cd00">3</font>.<font color="#00cd00">029</font>/lib/em64t<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 看它的脚本理论上来说不添加这行也是可以找到 MKL 的，不过在我这里报错说</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 找不到 MKL 里面的某个 so，所以还是加上比较保险</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;rungms:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">60</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;SCR</font><font color="#0000ff"><b>=</b></font>/home/gamess/scr/<font color="#cd00cd">$USER</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 存放运算临时文件的地方，自己喜欢放哪里放哪里，如果你内存够大的话也可以放在</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># /dev/shm (实际是个在内存里面的目录)</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将所有的 ~mike/gamess 换成你的 gamess 安装目录（我的是 /home/gamess）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#cd00cd">$USER</font>/scr 替换成 <font color="#cd00cd">$SCR</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;你可以通过运行下面命令来一次性完成此工作：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sed <font color="#0000ff"><b>-i</b></font>&nbsp;<font color="#0000ff"><b>&#8216;</b></font><font color="#00cd00">s|~mike/gamess|/home/gamess|g;s|~$USER/scr|$SCR|g</font><font color="#0000ff"><b>&#8216;</b></font>&nbsp;./rungms</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果你想使用 SMP 方式并行多核运算的话如果是双核机器则修改这里:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">497</font>: <font color="#0000ff"><b>case</b></font>&nbsp;br.msg.chem.iastate.edu: <font color="#ee0000"># 下面添加一行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line 498: case YOUR-SERVER-NAME: <font color="#ee0000"># YOUR-SERVER-NAME 是运行 hostname 出来的结果</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line 499:&nbsp;&nbsp; if <font color="#0000ff"><b>(</b></font><font color="#cd00cd">$NCPUS</font>&nbsp;&gt; 2<font color="#0000ff"><b>)</b></font>&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;NCPUS</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">2</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果是四核机器则修改这里:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">490</font>: <font color="#0000ff"><b>case</b></font>&nbsp;sc.msg.chem.iastate.edu: <font color="#ee0000"># 下面添加一行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line 491:&nbsp;&nbsp; case YOUR-SERVER-NAME: <font color="#ee0000"># YOUR-SERVER-NAME 是运行 hostname 出来的结果</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line 492:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if <font color="#0000ff"><b>(</b></font><font color="#cd00cd">$NCPUS</font>&nbsp;&gt; 4<font color="#0000ff"><b>)</b></font>&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;NCPUS</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">4</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;runall:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">13</font>:&nbsp;&nbsp;<font color="#0000ff"><b>chdir</b></font>&nbsp;/home/gamess</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;编译 actvte&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&nbsp;&nbsp;&nbsp;&nbsp;下面我们要编译链接激活 gamess 代码的程序 actvte <font color="#0000ff"><b>(</b></font>下面命令均在终端下输入<font color="#0000ff"><b>)</b></font>:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>cd</b></font>&nbsp;/home/gamess/tools/<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 视你 gamess 源文件存放地点的不同而 cd 到不同的目录</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;cp actvte.code actvte.f<br />
&nbsp;&nbsp;&nbsp;&nbsp;sed -i <font color="#0000ff"><b>&#8216;</b></font><font color="#00cd00">s|^\*UNX|&nbsp;&nbsp;&nbsp;&nbsp;|g</font><font color="#0000ff"><b>&#8216;</b></font>&nbsp;actvte.f<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 把以 *UNX 的开头用四个空格替换掉，即取消注释，亮出 UNIX-LIKE 系统的激活代码</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;ifort -o actvte.x -Vaxlib actvte.f<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 或 g95 -o actvte.x actvte.f 如果你没有 ifort 的话</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 成功生成了 actvte.x 以后可以将 actvte.f 删除</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;开始编译&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;&nbsp;&nbsp;&nbsp;然后便可以开始编译了，在终端运行:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>cd</b></font>&nbsp;/home/gamess<br />
&nbsp;&nbsp;&nbsp;&nbsp;./compall<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 如果你想看着它编译的话，或者让其在后台运行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;./compall <font color="#0000ff"><b>&amp;</b></font><font color="#0000ff"><b>&gt;</b></font>&nbsp;compall.log <font color="#0000ff"><b>&amp;</b></font><br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 上面两条命令选一即可，无须都执行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 经过一段取决于你机器性能的时间后（我这里大约用了 20 分钟）主要编译便完成了</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;其后编译 gamess 的分布式数据接口 <font color="#0000ff"><b>(</b></font>DDI<font color="#0000ff"><b>)</b></font>&nbsp;消息传递库，无论是否打算并行计算都必须<br />
&nbsp;&nbsp;&nbsp;&nbsp;编译，否则下面 lked 步骤通不过。假设现在主机名是 YOUR-SERVER-NAME（用 hostname<br />
&nbsp;&nbsp;&nbsp;&nbsp;命令可以看到当前主机名），就在 /etc/hosts 里面填上一行当前主机的IP地址和主机名<br />
&nbsp;&nbsp;&nbsp;&nbsp;例如: <font color="#00cd00">192</font>.<font color="#00cd00">168</font>.<font color="#00cd00">153</font>.<font color="#00cd00">3</font>&nbsp;YOUR-SERVER-NAME <font color="#ee0000"># [参考文献 1]</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;命令:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;sudo su<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>echo</b></font><font color="#00cd00">&nbsp;</font><font color="#0000ff"><b>&quot;</b></font><font color="#00cd00">192.168.153.3 YOUR-SERVER-NAME</font><font color="#0000ff"><b>&quot;</b></font><font color="#00cd00">&nbsp;</font><font color="#0000ff"><b>&gt;&gt;</b></font>&nbsp;/etc/hosts</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;进入 /home/gamess/ddi 目录，修改 compddi<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;compddi:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">18</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;TARGET </font><font color="#0000ff"><b>=</b></font>&nbsp;linux-ia64<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">62</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;MAXCPUS&nbsp;&nbsp;</font><font color="#0000ff"><b>=</b></font>&nbsp;<font color="#00cd00">4</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">63</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;MAXNODES </font><font color="#0000ff"><b>=</b></font>&nbsp;<font color="#00cd00">2</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># set MAXCPUS 和 set MAXNODES 后面设成你的实际情况，前者代表每个节点中最多</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 包含几个核心（每个节点内可以以SMP方式并行的核心数目），后者代表最多有几个</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 节点，它们设的都可以比实际情况多 [参考文献 1]</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;修改 /home/gamess/ddi/src/std_system.c</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;std_system.c<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">26</font>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct hostent *hp<font color="#0000ff"><b>;</b></font>&nbsp;<font color="#ee0000"># 在其后插入一行</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">27</font>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name <font color="#0000ff"><b>=</b></font>&nbsp;<font color="#0000ff"><b>&quot;</b></font><font color="#00cd00">YOUR-SERVER-NAME</font><font color="#0000ff"><b>&quot;;</b></font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 之所以要加入这么一行是因为GAMESS的bug，会将主机名强行认作为localhost而不是</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 实际主机名，导致运行时提示TCP error之类错误 [参考文献 1]</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;最后运行命令:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;./compddi<br />
&nbsp;&nbsp;&nbsp;&nbsp;mv ddikick.x ..</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;最后编译图形应用程序</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>cd</b></font>&nbsp;/home/gamess/graphics<br />
&nbsp;&nbsp;&nbsp;&nbsp;编辑 complink 文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;complink:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">15</font>:&nbsp;&nbsp;<font color="#0000ff"><b>chdir</b></font>&nbsp;/home/gamess/graphics<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">18</font>:&nbsp;&nbsp;<font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;TARGET</font><font color="#0000ff"><b>=</b></font>linux-pc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">31</font>:&nbsp;&nbsp;<font color="#0000ff"><b>if </b></font><font color="#0000ff"><b>(</b></font><font color="#cd00cd">$TARGET</font>&nbsp;<font color="#0000ff"><b>==</b></font>&nbsp;linux-pc<font color="#0000ff"><b>)</b></font>&nbsp;&nbsp; <font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;FORT</font><font color="#0000ff"><b>=</b></font><font color="#00cd00">&#8216;ifort -O2&#8242;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;之后运行./complink来编译</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;链接程序&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&nbsp;&nbsp;&nbsp;&nbsp;链接可执行文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;命令：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>cd</b></font>&nbsp;/home/gamess<br />
&nbsp;&nbsp;&nbsp;&nbsp;./lked gamess <font color="#0000ff"><b>&amp;</b></font><font color="#0000ff"><b>&gt;</b></font>&nbsp;lked.log</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;如果不出问题的话最终会在当前目录下生成一个 gamess.<font color="#00cd00">00</font>.x 这样的可执行文件，至此我们的<br />
&nbsp;&nbsp;&nbsp;&nbsp;编辑工作就全部完成了，下面就是测试环节，在 /home/gamess 目录下运行 ./runall 将会对<br />
&nbsp;&nbsp;&nbsp;&nbsp;编译好的GAMESS程序进行测试，自动运行<font color="#00cd00">44</font>个测试文件，将在当前目录下得到一批 exam??.log<br />
&nbsp;&nbsp;&nbsp;&nbsp;文件。修改 /home/gamess/tools/checktst 目录下的 checktst 文件:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;checktst:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line <font color="#00cd00">9</font>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"><b>set</b></font><font color="#008b8b">&nbsp;GMSPATH</font><font color="#0000ff"><b>=</b></font>/home/gamess<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;然后运行此文件，出现提示时输入 /home/gamess，会将所得log文件的结果与标准结果相对比<br />
&nbsp;&nbsp;&nbsp;&nbsp;检查任务是否已正常结束，以及计算误差是否超过阈值。对于failed的任务，检查相应的log文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;除掉毛病后，把 scr 目录下对应文件删掉，若要单独运行一个测试比如 exam42 可以使用命令:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><b>cd</b></font>&nbsp;/home/gamess<br />
&nbsp;&nbsp;&nbsp;&nbsp;./rungms exam42 <font color="#00cd00">00</font>&nbsp;<font color="#00cd00">4</font>&nbsp;<font color="#0000ff"><b>&amp;</b></font><font color="#0000ff"><b>&gt;</b></font>exam42.log<br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># rungms 的参数意义为: JOB=$1 (输入文件 xxx.inp，可以不输入扩展名); VERNO=$2 (lked</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ee0000"># 一步的 revision 数字，默认 00); NCPUS=$3 (运行时调用的 CPU 核心数)</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;待完成后再 checktst 看是否都已通过。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;一般情况下 exam42 和 exam43 会由于 linux 默认的单个共享内存段的最大值太小而不能通过<br />
&nbsp;&nbsp;&nbsp;&nbsp;使用 /sbin/sysctl <font color="#0000ff"><b>-a</b></font>&nbsp;<font color="#0000ff"><b>|</b></font>&nbsp;grep shmmax 命令察看默认值，这两个任务需要约 48MB，修改<br />
&nbsp;&nbsp;&nbsp;&nbsp;/etc/sysctl.conf，在里面加入一行 kernel.shmmax <font color="#0000ff"><b>=</b></font>&nbsp;<font color="#00cd00">5000000000</font>&nbsp;将其增加到约 500MB<br />
&nbsp;&nbsp;&nbsp;&nbsp;可以使用命令 /sbin/sysctl <font color="#0000ff"><b>-w</b></font>&nbsp;<font color="#008b8b">kernel.shmmax</font>=<font color="#00cd00">5000000000</font>&nbsp;来使其立即生效</p>
<p>参考文献:<br />
&nbsp;&nbsp;&nbsp;&nbsp;参考文献 <font color="#00cd00">1</font>: <a href="http://hi.baidu.com/sobereva/blog/item/fff7b5fd1e8dd04fd6887db6.html">http://hi.baidu.com/sobereva/blog/item/fff7b5fd1e8dd04fd6887db6.html</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;参考文献 <font color="#00cd00">2</font>: 王涛, 量子化学计算程序包GAMESS, 科学计算应用软件系列介绍<br />
</font></p>
]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2010/01/compile-gamess-with-icc-and-mkl-under-archlinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>获取所有符合条件分子式的脚本</title>
		<link>http://joolix.com/2009/12/python-formula-computing-script/</link>
		<comments>http://joolix.com/2009/12/python-formula-computing-script/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 15:31:12 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[command]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=318</guid>
		<description><![CDATA[在某些时候我们只知道某一个分子的分子量和大概的碳氢氧的个数范围，在这种情况下要算出符合这些条件的分子式，用手工的方法算是很麻烦的，于是就有了下面的这个脚本，其特点是：
1） 全面，无漏网之鱼
2） 用了不饱和度检测，不饱和度不正常的（如为小数）分子式均被排除
3） python 写的，可跨平台使用。
<span class="readmore"><a href="http://joolix.com/2009/12/python-formula-computing-script/" title="获取所有符合条件分子式的脚本" target="_blank">阅读全文——共1648字</a></span>]]></description>
			<content:encoded><![CDATA[<p>在某些时候我们只知道某一个分子的分子量和大概的碳氢氧的个数范围，在这种情况下要算出符合这些条件的分子式，用手工的方法算是很麻烦的，于是就有了下面的这个脚本，其特点是：<br />
1） 全面，无漏网之鱼<br />
2） 用了不饱和度检测，不饱和度不正常的（如为小数）分子式均被排除<br />
3） python 写的，可跨平台使用。</p>
<p>例子：</p>
<pre lang='bash' pre='1'>xiooli@XIOOLI> python  .bin/fmcom.py
Please input: 173 c,8,18 h,0,20 o,0,10 n,0,6
The results are as follows:
MF: C8H3O2N3   Ω: 9
MF: C8H7N5     Ω: 8
MF: C8H15O3N   Ω: 2
MF: C8H19ON3   Ω: 1
MF: C9H3O3N    Ω: 9
MF: C9H7ON3    Ω: 8
MF: C9H19O2N   Ω: 1
MF: C10H7O2N   Ω: 8
MF: C10H11N3   Ω: 7
MF: C11H11ON   Ω: 7
MF: C12H15N    Ω: 6
MF: C13H3N     Ω: 13</pre>
<p>说明一下： 173 c,8,18 h,0,20 o,0,10<br />
这里 173 是分子量， 后边的表达式都是一样的如：c,8,18 表示 碳原子 个数范围为 8 到 18。<br />
注意分隔符是英文逗号。</p>
<p>源码：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
</pre></td><td class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
<span style="color: #808080; font-style: italic;"># Name:     fmcom.py</span>
<span style="color: #808080; font-style: italic;"># Author:   xiooli &lt;xioooli[at]yahoo.com.cn&gt;</span>
<span style="color: #808080; font-style: italic;"># Site:     http://joolix.com</span>
<span style="color: #808080; font-style: italic;"># Licence:  GPLv3</span>
<span style="color: #808080; font-style: italic;"># Version:  091224</span>
&nbsp;
<span style="color: #483d8b;">''</span><span style="color: #483d8b;">'compute out the formula of a given molecular weight'</span><span style="color: #483d8b;">''</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># dictionary for the elements: { 'element': (atomic weight, omiga factor)</span>
edic = <span style="color: black;">&#123;</span> <span style="color: #483d8b;">'C'</span>: <span style="color: black;">&#40;</span><span style="color: #ff4500;">12</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'H'</span>: <span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>, -<span style="color: #ff4500;">0.5</span><span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'O'</span>: <span style="color: black;">&#40;</span><span style="color: #ff4500;">16</span>, 0<span style="color: black;">&#41;</span>,
        <span style="color: #483d8b;">'N'</span>: <span style="color: black;">&#40;</span><span style="color: #ff4500;">14</span>, <span style="color: #ff4500;">0.5</span><span style="color: black;">&#41;</span>
        <span style="color: black;">&#125;</span>
&nbsp;
args = <span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> gen_formula<span style="color: black;">&#40;</span>args<span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'Main function for generating the formula'</span><span style="color: #483d8b;">''</span>
&nbsp;
    mw = args<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>
    e_info = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
    formula = <span style="color: #483d8b;">''</span>
    omiga = <span style="color: #483d8b;">''</span>
    fors = <span style="color: #483d8b;">''</span>
    ifs =<span style="color: #483d8b;">''</span>
&nbsp;
    E = <span style="color: #ff7700;font-weight:bold;">lambda</span> x, y: <span style="color: black;">&#40;</span>y==0 <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #483d8b;">' '</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: black;">&#40;</span>y==<span style="color: #ff4500;">1</span> <span style="color: #ff7700;font-weight:bold;">and</span> x.<span style="color: black;">upper</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">or</span> x.<span style="color: black;">upper</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>y<span style="color: black;">&#41;</span>
    L = <span style="color: #ff7700;font-weight:bold;">lambda</span> x, y: <span style="color: black;">&#40;</span>x, <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>x<span style="color: black;">&#41;</span>, y<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">for</span> tmp <span style="color: #ff7700;font-weight:bold;">in</span> args<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span>:<span style="color: black;">&#93;</span>:
        e_info.<span style="color: black;">append</span><span style="color: black;">&#40;</span>tmp.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        element, num1, num2 = tmp.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span>
        element = element.<span style="color: black;">upper</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        formula += <span style="color: #483d8b;">'E(&quot;'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>element<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'&quot;,'</span> + element + <span style="color: #483d8b;">') + '</span>
        fors += <span style="color: #483d8b;">' for '</span> + element + <span style="color: #483d8b;">' in range('</span> + num1 + <span style="color: #483d8b;">','</span> + num2 + <span style="color: #483d8b;">') '</span>
        ifs += <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>edic<span style="color: black;">&#91;</span>element<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'*'</span> + element + <span style="color: #483d8b;">' + '</span>
        omiga += <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>edic<span style="color: black;">&#91;</span>element<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'*'</span> + element + <span style="color: #483d8b;">' + '</span>
&nbsp;
    formula = formula.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'+ '</span><span style="color: black;">&#41;</span>
    omiga += <span style="color: #483d8b;">'1'</span>
    ifs = ifs.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'+ '</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #dc143c;">cmd</span> = <span style="color: #483d8b;">'[ L(('</span> + formula + <span style="color: #483d8b;">').replace(<span style="color: #000099; font-weight: bold;">\'</span> <span style="color: #000099; font-weight: bold;">\'</span>,<span style="color: #000099; font-weight: bold;">\'</span><span style="color: #000099; font-weight: bold;">\'</span>), '</span> + omiga + <span style="color: #483d8b;">')'</span> + fors + \
            <span style="color: #483d8b;">'if '</span> + ifs + <span style="color: #483d8b;">' == '</span> + mw + <span style="color: #483d8b;">' and int('</span> + omiga + <span style="color: #483d8b;">') == '</span> + omiga + <span style="color: #483d8b;">']'</span>
    l = <span style="color: #008000;">eval</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">cmd</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> l:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'The results are as follows:'</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> f <span style="color: #ff7700;font-weight:bold;">in</span> l:
            str_omiga = <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">int</span><span style="color: black;">&#40;</span>f<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'MF: '</span> + f<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> + <span style="color: black;">&#40;</span><span style="color: #483d8b;">'Ω: '</span> + str_omiga<span style="color: black;">&#41;</span>.<span style="color: black;">rjust</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">15</span> - f<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> + <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>str_omiga<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'No suitable molecular formula found.'</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>args<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #ff4500;">1</span>:
        <span style="color: #008000;">input</span> = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Please input: '</span><span style="color: black;">&#41;</span>
        args = <span style="color: #008000;">input</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">' '</span><span style="color: black;">&#41;</span>
        gen_formula<span style="color: black;">&#40;</span>args<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> args<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> == <span style="color: #483d8b;">'-h'</span> <span style="color: #ff7700;font-weight:bold;">or</span> args<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> == <span style="color: #483d8b;">'--help'</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> args<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> + <span style="color: #483d8b;">' [molecular weight] [element1, least, most] [element2, least, most] ...'</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        gen_formula<span style="color: black;">&#40;</span>args<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span>:<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2009/12/python-formula-computing-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>snail 溶剂比例计算器升级版</title>
		<link>http://joolix.com/2009/12/snail-solution-calculator-updated/</link>
		<comments>http://joolix.com/2009/12/snail-solution-calculator-updated/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 16:27:36 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[screenshot]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=297</guid>
		<description><![CDATA[添加了利用现有两种溶液来计算欲配溶液的功能
修复了一些易引发错误的代码。
片片：

<span class="readmore"><a href="http://joolix.com/2009/12/snail-solution-calculator-updated/" title="snail 溶剂比例计算器升级版" target="_blank">阅读全文——共8052字</a></span>]]></description>
			<content:encoded><![CDATA[<p>添加了利用现有两种溶液来计算欲配溶液的功能<br />
修复了一些易引发错误的代码。<br />
片片：<br />
<img src="http://joolix.com/wp-content/uploads/2009/12/抓图28.png" alt="snail2 抓图" /></p>
<p>代码：<br />
snail.py :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
</pre></td><td class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Author:   xiooli &lt;xioooli[at]yahoo.com.cn&gt;</span>
<span style="color: #808080; font-style: italic;"># Site:     http://joolix.com</span>
<span style="color: #808080; font-style: italic;"># Licence:  GPLv3</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>, <span style="color: #dc143c;">os</span>
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4 <span style="color: #ff7700;font-weight:bold;">import</span> QtCore, QtGui
<span style="color: #ff7700;font-weight:bold;">from</span> ui_zh <span style="color: #ff7700;font-weight:bold;">import</span> Ui_mainWindow
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4.<span style="color: black;">QtGui</span> <span style="color: #ff7700;font-weight:bold;">import</span> QMainWindow
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4.<span style="color: black;">QtCore</span> <span style="color: #ff7700;font-weight:bold;">import</span> pyqtSignature
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Win<span style="color: black;">&#40;</span>QMainWindow, Ui_mainWindow<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, parent = <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
        QMainWindow.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, parent<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">setupUi</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>
    @pyqtSignature<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> on_pushButton_clicked<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;&quot;</span>
        now_B_A = now_B_B = <span style="color: #483d8b;">&quot;&quot;</span>
        continue_com = <span style="color: #483d8b;">&quot;&quot;</span>
        vol = <span style="color: #483d8b;">&quot;&quot;</span>
        rst = <span style="color: #483d8b;">&quot;&quot;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            now_B_A = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_4</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            now_B_B = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_5</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span>:
            <span style="color: #ff7700;font-weight:bold;">pass</span>
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            now_A_A = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_1</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            now_A_B = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_2</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            now_vol = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            want_A = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_6</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            want_B = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_7</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">ValueError</span>:
           <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;错误：有输入框未输入数字，或输入了非数字字符！&quot;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> <span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: black;">&#40;</span> now_B_A <span style="color: #ff7700;font-weight:bold;">and</span> now_B_B <span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">try</span>:
                vol,rst = <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,\
                        <span style="color: #008000;">round</span><span style="color: black;">&#40;</span>now_vol<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span> now_A_A/<span style="color: black;">&#40;</span>now_A_A+now_A_B<span style="color: black;">&#41;</span>-want_A/<span style="color: black;">&#40;</span>want_A+want_B<span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span> / \
                        <span style="color: black;">&#40;</span> want_A/<span style="color: black;">&#40;</span>want_A+want_B<span style="color: black;">&#41;</span>-now_B_A/<span style="color: black;">&#40;</span>now_B_A+now_B_B<span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span>, <span style="color: #ff4500;">4</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">ZeroDivisionError</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;错误：试图除零！&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> rst <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;&quot;</span> <span style="color: #ff7700;font-weight:bold;">and</span> rst <span style="color: #66cc66;">&gt;</span> 0:
                rst = <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>rst<span style="color: black;">&#41;</span>
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;须向 &quot;</span> + vol + <span style="color: #483d8b;">&quot; ML 现有溶液 A 中加入现有溶液 B &quot;</span> + rst + <span style="color: #483d8b;">&quot; ML&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;注意：现有溶液 A 和 B 不能配制出欲配溶液&lt;p&gt;&quot;</span>
                continue_com = <span style="color: #ff4500;">1</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> <span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">or</span> continue_com:
            <span style="color: #ff7700;font-weight:bold;">if</span> want_A<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A_A+now_A_B<span style="color: black;">&#41;</span> == 0:
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;错误：试图除零！&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">elif</span> want_B <span style="color: #66cc66;">!</span>= 0 <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: black;">&#40;</span>now_A_B == 0 <span style="color: #ff7700;font-weight:bold;">or</span> now_A_A / now_A_B <span style="color: #66cc66;">&gt;</span> want_A / want_B<span style="color: black;">&#41;</span>:
                vol,rst = <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,\
                        <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">round</span><span style="color: black;">&#40;</span>now_vol<span style="color: #66cc66;">*</span>now_A_A<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>want_A+want_B<span style="color: black;">&#41;</span>/<span style="color: black;">&#40;</span>want_A<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A_A+now_A_B<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>-now_vol,<span style="color: #ff4500;">4</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> += <span style="color: #483d8b;">&quot;须向 &quot;</span> + vol + <span style="color: #483d8b;">&quot; ML 现有溶液 A 中加入溶剂 B &quot;</span> + rst + <span style="color: #483d8b;">&quot; ML&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">elif</span> want_B <span style="color: #66cc66;">!</span>= 0 <span style="color: #ff7700;font-weight:bold;">and</span> now_A_B <span style="color: #66cc66;">!</span>= 0 <span style="color: #ff7700;font-weight:bold;">and</span> now_A_A / now_A_B == want_A / want_B:
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;现有溶液 A 和欲配溶液是同一种溶液，无须额外动作。&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                <span style="color: #ff7700;font-weight:bold;">try</span>:
                    vol,rst=<span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">text</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,\
                            <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">round</span><span style="color: black;">&#40;</span>now_vol<span style="color: #66cc66;">*</span>now_A_B<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>want_A+want_B<span style="color: black;">&#41;</span>/<span style="color: black;">&#40;</span>want_B<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A_A+now_A_B<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>-now_vol,<span style="color: #ff4500;">4</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
                    <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> += <span style="color: #483d8b;">&quot;须向 &quot;</span> + vol + <span style="color: #483d8b;">&quot; ML 现有溶液 A 中加入溶剂 A &quot;</span> + rst + <span style="color: #483d8b;">&quot; ML&quot;</span>
                <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">ZeroDivisionError</span>:
                    <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;错误：试图除零！&quot;</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    app = QtGui.<span style="color: black;">QApplication</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#41;</span>
    win=Win<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    win.<span style="color: black;">show</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span>app.<span style="color: black;">exec_</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>ui_zh.py :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
</pre></td><td class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Form implementation generated from reading ui file 'snail.ui'</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Created: Wed Nov 11 21:15:36 2009</span>
<span style="color: #808080; font-style: italic;">#      by: PyQt4 UI code generator 4.6.1</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># WARNING! All changes made in this file will be lost!</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4 <span style="color: #ff7700;font-weight:bold;">import</span> QtCore, QtGui
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Ui_mainWindow<span style="color: black;">&#40;</span><span style="color: #008000;">object</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> setupUi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, mainWindow<span style="color: black;">&#41;</span>:
        mainWindow.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">resize</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">872</span>, <span style="color: #ff4500;">452</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span> = QtGui.<span style="color: black;">QWidget</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;centralwidget&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_1</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_1</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_1</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_1</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_1&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_2</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_2</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">460</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_2</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_2</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_2&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">670</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">161</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_3&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_4</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_4</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">170</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_4</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_4</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_4&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_5</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_5</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">460</span>, <span style="color: #ff4500;">170</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_5</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_5</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_5&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">280</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">131</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">490</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">131</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_2&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">710</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">131</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_3&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">40</span>, <span style="color: #ff4500;">100</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_4&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">40</span>, <span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_5&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span> = QtGui.<span style="color: black;">QPushButton</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">670</span>, <span style="color: #ff4500;">170</span>, <span style="color: #ff4500;">161</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;pushButton&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span> = QtGui.<span style="color: black;">QFrame</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setEnabled</span><span style="color: black;">&#40;</span><span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">40</span>, <span style="color: #ff4500;">330</span>, <span style="color: #ff4500;">791</span>, <span style="color: #ff4500;">91</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setMouseTracking</span><span style="color: black;">&#40;</span><span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setAutoFillBackground</span><span style="color: black;">&#40;</span><span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setFrameShape</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QFrame</span>.<span style="color: black;">StyledPanel</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setFrameShadow</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QFrame</span>.<span style="color: black;">Raised</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;frame&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">frame</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">781</span>, <span style="color: #ff4500;">71</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; color: rgb(0, 0, 255);&quot;&quot;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_6&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_7</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_7</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">40</span>, <span style="color: #ff4500;">180</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_7</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_7</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_7&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_6</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_6</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_6</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_6</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_6&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_7</span> = QtGui.<span style="color: black;">QLineEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_7</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">460</span>, <span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_7</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_7</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;lineEdit_7&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span> = QtGui.<span style="color: black;">QPushButton</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">670</span>, <span style="color: #ff4500;">250</span>, <span style="color: #ff4500;">161</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;pushButton_2&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">setCentralWidget</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">menubar</span> = QtGui.<span style="color: black;">QMenuBar</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">menubar</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span>0, 0, <span style="color: #ff4500;">872</span>, <span style="color: #ff4500;">25</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">menubar</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;menubar&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">setMenuBar</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">menubar</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">statusbar</span> = QtGui.<span style="color: black;">QStatusBar</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">statusbar</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;statusbar&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">setStatusBar</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">statusbar</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">retranslateUi</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        QtCore.<span style="color: black;">QObject</span>.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>, QtCore.<span style="color: black;">SIGNAL</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;clicked()&quot;</span><span style="color: black;">&#41;</span>, <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">clear</span><span style="color: black;">&#41;</span>
        QtCore.<span style="color: black;">QObject</span>.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>, QtCore.<span style="color: black;">SIGNAL</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;clicked()&quot;</span><span style="color: black;">&#41;</span>, mainWindow.<span style="color: black;">close</span><span style="color: black;">&#41;</span>
        QtCore.<span style="color: black;">QMetaObject</span>.<span style="color: black;">connectSlotsByName</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> retranslateUi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, mainWindow<span style="color: black;">&#41;</span>:
        mainWindow.<span style="color: black;">setWindowTitle</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot; 溶剂比例计算器 - Snail&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">lineEdit_3</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;1000&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot; 溶剂 A&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot; 溶剂 B&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;体积&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;现有溶液 A&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;欲配溶液&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;计算&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;欢迎使用溶剂比例计算器 Snail<span style="color: #000099; font-weight: bold;">\n</span>xiooli &lt;xioooli@yahoo.com.cn&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_7</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;现有溶液 B&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;关闭&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2009/12/snail-solution-calculator-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>化学信息学及相关文章和资源收藏</title>
		<link>http://joolix.com/2009/12/collections-of-cheminformatics-and-related-resources/</link>
		<comments>http://joolix.com/2009/12/collections-of-cheminformatics-and-related-resources/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 16:02:28 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=285</guid>
		<description><![CDATA[如下：


1:	Chemene Cheminformatics Technologies &#8211; Blog
<span class="readmore"><a href="http://joolix.com/2009/12/collections-of-cheminformatics-and-related-resources/" title="化学信息学及相关文章和资源收藏" target="_blank">阅读全文——共2649字</a></span>]]></description>
			<content:encoded><![CDATA[<p><DT><H4 >如下：</H4><br />
<DL>
<p>
<DT>1:	<A HREF="http://www.chemene.com:8080/Web/Blog.aspx" >Chemene Cheminformatics Technologies &#8211; Blog</A><br />
<DT>2:	<A HREF="http://www.chemene.com:8080/CCD/JSDraw/" >Chemene JSDraw &#8211; A Javascript Chemical Structure Editor/Viewer</A><br />
<DT>3:	<A HREF="http://merian.pch.univie.ac.at/~nhaider/cheminf/moldb.html" >Creating a web-based, searchable molecular structure database using free software</A><br />
<DT>4:	<A HREF="http://www.emolecules.com/" >eMolecules.com | Chemical Structure Drawing Search</A><br />
<DT>5:	<A HREF="http://merian.pch.univie.ac.at/pch/download/chemistry/" >Index of /pch/download/chemistry</A><br />
<DT>6:	<A HREF="http://www.ch.ic.ac.uk/vchemlib/mol/search/spurt/jme_functions.html" >JME Usage</A><br />
<DT>7:	<A HREF="http://merian.pch.univie.ac.at/%7Enhaider/cheminf/mol2ps.html" >mol2ps Homepage</A><br />
<DT>8:	<A HREF="http://merian.pch.univie.ac.at/~nhaider/cheminf/moldb5doc.html#features" >MolDB5 documentation</A><br />
<DT>9:	<A HREF="http://www.ebi.ac.uk/nmrshiftdb/portal/media-type/html/user/anon/page/default.psml/js_pane/P-Home;jsessionid=F70CAA1D4D6F4E5A064CD1A43F31208F" >NMRShiftDB &#8211; open nmr database on the web</A><br />
<DT>10:	<A HREF="http://cactus.nci.nih.gov/services/translate/" >Online SMILES Translator</A><br />
<DT>11:	<A HREF="http://depth-first.com/articles/2007/01/24/thirty-two-free-chemistry-databases" >Thirty-Two Free Chemistry Databases</A><br />
<DT>12:	<A HREF="http://www.bylm.net/www/22/927.html" >化学中的常用计算机软件与资源 化学化工 博研联盟 &#8211; Powered by VeryCMS</A><br />
<DT>13:	<A HREF="http://www.chemaxon.com/" >ChemAxon chemistry software toolkit free academic java .net Marvin JChem</A><br />
<DT>14:	<A HREF="http://www.cbs.cnrs.fr/GIFA/" >http://www.cbs.cnrs.fr/GIFA/</A><br />
<DT>15:	<A HREF="http://www.mestrec.com/" >Mestrelab Research S.L. &#8211; Home</A><br />
<DT>16:	<A HREF="http://www.wiley.com/legacy/wileychi/ms/msi/mssw.html" >Base Peak &#8211; Mass Spectrometry Software</A><br />
<DT>17:	<A HREF="http://www.materialssimulation.com/" >量子化学网</A><br />
<DT>18:	<A HREF="http://open-ms.sourceforge.net/news.php" >OpenMS / TOPP website</A><br />
<DT>19:	<A HREF="http://lcms-sim.sourceforge.net/" >LC-MSsim : a simulator for Liquid Chromatography &#8211; Mass Spectrometry data</A><br />
<DT>20:	<A HREF="http://www.tcm120.com/1w2k/q_comp.asp" >中药化合物数据库</A><br />
<DT>21:	<A HREF="http://riodb01.ibase.aist.go.jp/sdbs/cgi-bin/cre_index.cgi?lang=eng" >Spectral Database for Organic Compounds,SDBS</A><br />
<DT>22:	<A HREF="http://www.univ-orleans.fr/icoa/screeningassistant/index.html" >ScreeningAssistant : select compounds for screening tests</A><br />
<DT>23:	<A HREF="http://pubs.acs.org/journal/jnprdf" >Journal of Natural Products (ACS Publications and Am. Soc. of Pharmacognosy)</A><br />
<DT>24:	<A HREF="http://davapc1.bioch.dundee.ac.uk/prodrg/" >The Dundee PRODRG Server</A><br />
<DT>25:	<A HREF="http://www.ebi.ac.uk/steinbeck/publications.html" >Chemoinformatics and Metabolism Team | Publications | EBI</A><br />
<DT>26:	<A HREF="http://www.ebi.ac.uk/nmrshiftdb/" >NMRShiftDB &#8211; open nmr database on the web</A><br />
<DT>27:	<A HREF="http://www.bioclipse.net/doc/1.2.0/index.html" >Bioclipse Documentation</A><br />
<DT>28:	<A HREF="http://dtp.nci.nih.gov/docs/3d_database/Structural_information/structural_data.html" >DTP / 2D and 3D Structural Information</A><br />
<DT>29:	<A HREF="http://www.ebi.ac.uk/Tools/webservices/services/dbfetch" >services:dbfetch | EBI Web Services | EBI</A><br />
<DT>30:	<A HREF="http://depth-first.com/articles/2006/09/04/hacking-nmrshiftdb" >Hacking NMRShiftDB</A><br />
<DT>31:	<A HREF="http://pubchem.ncbi.nlm.nih.gov/" >The PubChem Project</A><br />
<DT>32:	<A HREF="http://mgl.scripps.edu/people/gmm/" >scripps.edu</A><br />
<DT>33:	<A HREF="http://www.emolecules.com/" >eMolecules.com | Chemical Structure Drawing Search</A><br />
<DT>34:	<A HREF="http://www-lmmb.ncifcrf.gov/~toms/" >Molecular Information Theory and the Theory of Molecular Machines</A><br />
<DT>35:	<A HREF="http://zh.wikipedia.org/wiki/SMILES" >SMILES &#8211; 维基百科，自由的百科全书</A><br />
<DT>36:	<A HREF="http://openbabel.org/wiki/Main_Page" >Open Babel</A><br />
<DT>37:	<A HREF="http://jmol.sourceforge.net/jslibrary/" >Jmol.js JavaScript Library</A><br />
<DT>38:	<A HREF="http://www.dalkescientific.com/writings/" >Writings by Andrew Dalke</A><br />
<DT>39:	<A HREF="http://cactus.nci.nih.gov/services/gifcreator/" >GIF/PNG-Creator for 2D Plots of Chemical Structures</A><br />
<DT>40:	<A HREF="http://www.molecular-networks.com/products/corina" >CORINA &#8211; Generation of 3D coordinates | Inspiring Chemical Discovery</A><br />
<DT>41:	<A HREF="http://www.nsc.liu.se/software/chemistry/dalton/" >NSC: Chemistry: Dalton</A><br />
<DT>42:	<A HREF="http://zinc.docking.org/" >ZINC &#8211; A free database for virtual screening &#8211; version 8</A><br />
<DT>43:	<A HREF="http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html" >Daylight Theory: SMILES</A><br />
<DT>44:	<A HREF="http://www2.chemie.uni-erlangen.de/services/index.html" >TORVS Research Team &gt;&gt; Services</A><br />
<DT>45:	<A HREF="http://chemport.ipe.ac.cn/ListPageC/Software.shtml" >ChIN目录页:化学软件</A><br />
<DT>46:	<A HREF="http://www.openrasmol.org/" >RasMol and OpenRasMol</A><br />
<DT>47:	<A HREF="http://www.fiz-karlsruhe.de/index.php?id=15" >FIZ Karlsruhe: Home</A><br />
<DT>48:	<A HREF="http://sourceforge.net/projects/seneca/" >SENECA | Get SENECA at SourceForge.net</A><br />
<DT>49:	<A HREF="http://seneca.cvs.sourceforge.net/seneca/" >SourceForge.net Repository &#8211; [seneca] Index of /</A><br />
<DT>50:	<A HREF="http://203.208.37.132/search?q=cache:YfbZSV6857wJ:baoilleach.blogspot.com/2008/07/cheminformatics-toolkit-face-off-speed.html+cdk+python&#038;cd=5&#038;hl=zh-CN&#038;ct=clnk&#038;gl=cn&#038;st_usg=ALhdy2-2GcupXoUZ6dS3TMhIP1GvIEoVhg" >Noel O&#39;Blog: Cheminformatics toolkit face-off: Speed (Python vs Java vs C++)</A><br />
<DT>51:	<A HREF="http://code.google.com/p/cinfony/" >cinfony &#8211; Project Hosting on Google Code</A><br />
<DT>52:	<A HREF="http://openbabel.org/wiki/Using_OpenBabel_from_Python#Combining_Pybel_with_openbabel.py" >Using OpenBabel from Python &#8211; Open Babel</A><br />
<DT>53:	<A HREF="http://www.steinbeck-molecular.de/steinblog/" >SteinBlog — A molecular informatics weblog</A><br />
<DT>54:	<A HREF="http://code.google.com/p/cinfony/wiki/InstallationOnLinux" >InstallationOnLinux &#8211; cinfony &#8211; This page describes how to install cinfony 0.9.x on Linux &#8211; Project Hosting on Google Code</A><br />
<DT>55:	<A HREF="http://swik.net/Chemistry+python" >Chemistry + python &#8211; SWiK</A><br />
<DT>56:	<A HREF="http://dalkescientific.com/training/" >Dalke Scientific: Python Training for Cheminformatics</A><br />
<DT>57:	<A HREF="http://dirac.cnrs-orleans.fr/MMTK/" >The Molecular Modelling Toolkit — Molecular Modelling Toolkit</A><br />
<DT>58:	<A HREF="http://frowns.sourceforge.net/" > frowns.sourceforge.net</A><br />
<DT>59:	<A HREF="http://www.pymol.org/" >PyMOL Molecular Viewer &#8211; Home Page</A><br />
<DT>60:	<A HREF="http://137.189.50.96/kbwong/teaching/pymol/pymol_tutorial.html" >PyMol Tutorial</A><br />
<DT>61:	<A HREF="http://www.molsoft.com/molcart.html" >Molsoft L.L.C.: MolCart</A><br />
<DT>62:	<A HREF="http://www.hellers.com/steve/resume/p122.html" >http://www.hellers.com/steve/resume/p122.html</A><br />
<DT>63:	<A HREF="http://depth-first.com/articles/2008/10/02/fast-substructure-search-using-open-source-tools-part-1-fingerprints-and-databases" >Fast Substructure Search Using Open Source Tools Part 1: Fingerprints and Databases</A><br />
<DT>64:	<A HREF="http://merian.pch.univie.ac.at/~nhaider/cheminf/moldb.html" >Creating a web-based, searchable molecular structure database using free software</A><br />
<DT>65:	<A HREF="http://www.dalkescientific.com/writings/diary/archive/2008/06/26/fingerprint_background.html" >Molecular fingerprints, background</A><br />
<DT>66:	<A HREF="http://www.daylight.com/dayhtml/doc/theory/theory.finger.html" >Daylight Theory: Fingerprints</A><br />
<DT>67:	<A HREF="http://merian.pch.univie.ac.at/~nhaider/cheminf/cmmm.html" >Checkmol/Matchmol Homepage</A><br />
<DT>68:	<A HREF="http://chemhack.com/" >ChemHack » Hacking the chemistry world.</A><br />
<DT>69:	<A HREF="http://www.redbrick.dcu.ie/~noel/cinfony/toc-cinfony.cdkjython-module.html" >cdkjython</A><br />
<DT>70:	<A HREF="http://www.emolecules.com/doc/cheminformatics-101.php" >Cheminformatics 101 | What is Cheminformatics?</A><br />
<DT>71:	<A HREF="http://www.dalkescientific.com/writings/diary/archive/2005/03/02/faster_fingerprint_substructure_tests.html" >Faster fingerprint substructure tests</A><br />
</DL>
<p>
</DL><br />
]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2009/12/collections-of-cheminformatics-and-related-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pyqt 的溶剂比例计算器 snail</title>
		<link>http://joolix.com/2009/11/pyqt-based-solution-calculator-snail/</link>
		<comments>http://joolix.com/2009/11/pyqt-based-solution-calculator-snail/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 13:56:54 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[screenshot]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=278</guid>
		<description><![CDATA[RT
开始做植化了，要用，鑫哥的那个是 for win 的,以前写了个 ruby-gtk 的不知道扔哪里去了，于是重新写了个 pyqt 的。
ps： 图形界面的程序真是浪费表情阿，真正干活的就两三行，一旦要图形界面了就几百行，这个看来是死要面子（图形界面）活受罪的真实写照阿，呵呵。
片片：
<span class="readmore"><a href="http://joolix.com/2009/11/pyqt-based-solution-calculator-snail/" title="pyqt 的溶剂比例计算器 snail" target="_blank">阅读全文——共6605字</a></span>]]></description>
			<content:encoded><![CDATA[<p>RT<br />
开始做植化了，要用，鑫哥的那个是 for win 的,以前写了个 ruby-gtk 的不知道扔哪里去了，于是重新写了个 pyqt 的。</p>
<p>ps： 图形界面的程序真是浪费表情阿，真正干活的就两三行，一旦要图形界面了就几百行，这个看来是死要面子（图形界面）活受罪的真实写照阿，呵呵。</p>
<p>片片：<br />
<img src="http://joolix.com/wp-content/uploads/2009/11/抓图22.png" alt="snail 抓图" /></p>
<p>源码：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</pre></td><td class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Form implementation generated from reading ui file 'snail.ui'</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Created: Tue Nov 10 17:44:47 2009</span>
<span style="color: #808080; font-style: italic;">#      by: PyQt4 UI code generator 4.6.1</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># WARNING! All changes made in this file will be lost!</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>, <span style="color: #dc143c;">os</span>
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4 <span style="color: #ff7700;font-weight:bold;">import</span> QtCore, QtGui
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4.<span style="color: black;">QtGui</span> <span style="color: #ff7700;font-weight:bold;">import</span> QMainWindow
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4.<span style="color: black;">QtCore</span> <span style="color: #ff7700;font-weight:bold;">import</span> pyqtSignature
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Ui_mainWindow<span style="color: black;">&#40;</span><span style="color: #008000;">object</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> setupUi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, mainWindow<span style="color: black;">&#41;</span>:
        mainWindow.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">resize</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">767</span>, <span style="color: #ff4500;">375</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span> = QtGui.<span style="color: black;">QWidget</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;centralwidget&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit</span> = QtGui.<span style="color: black;">QTextEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">170</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;textEdit&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_2</span> = QtGui.<span style="color: black;">QTextEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_2</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">380</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_2</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_2</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;textEdit_2&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span> = QtGui.<span style="color: black;">QTextEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">590</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">161</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;textEdit_3&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_4</span> = QtGui.<span style="color: black;">QTextEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_4</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">170</span>, <span style="color: #ff4500;">180</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_4</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_4</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;textEdit_4&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_5</span> = QtGui.<span style="color: black;">QTextEdit</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_5</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">380</span>, <span style="color: #ff4500;">180</span>, <span style="color: #ff4500;">171</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_5</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_5</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;textEdit_5&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">200</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">131</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 26pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; 溶剂 A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">410</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">131</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 26pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; 溶剂 A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_2&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">630</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">131</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 26pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; 溶剂 A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_3&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">151</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 26pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; 溶剂 A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_4&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">190</span>, <span style="color: #ff4500;">151</span>, <span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 26pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; 溶剂 A&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_5&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span> = QtGui.<span style="color: black;">QPushButton</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">590</span>, <span style="color: #ff4500;">180</span>, <span style="color: #ff4500;">161</span>, <span style="color: #ff4500;">51</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;font: 20pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;pushButton&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span> = QtGui.<span style="color: black;">QLabel</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">30</span>, <span style="color: #ff4500;">270</span>, <span style="color: #ff4500;">721</span>, <span style="color: #ff4500;">71</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setStyleSheet</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;&quot;font: 22pt <span style="color: #000099; font-weight: bold;">\&quot;</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\&quot;</span>; color: rgb(0, 0, 255);&quot;&quot;&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;label_6&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span> = QtGui.<span style="color: black;">QFrame</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setEnabled</span><span style="color: black;">&#40;</span><span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">260</span>, <span style="color: #ff4500;">731</span>, <span style="color: #ff4500;">91</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setMouseTracking</span><span style="color: black;">&#40;</span><span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setAutoFillBackground</span><span style="color: black;">&#40;</span><span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setFrameShape</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QFrame</span>.<span style="color: black;">StyledPanel</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setFrameShadow</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QFrame</span>.<span style="color: black;">Raised</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">frame</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;frame&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">setCentralWidget</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">centralwidget</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">menubar</span> = QtGui.<span style="color: black;">QMenuBar</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">menubar</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span>0, 0, <span style="color: #ff4500;">767</span>, <span style="color: #ff4500;">25</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">menubar</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;menubar&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">setMenuBar</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">menubar</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">statusbar</span> = QtGui.<span style="color: black;">QStatusBar</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">statusbar</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;statusbar&quot;</span><span style="color: black;">&#41;</span>
        mainWindow.<span style="color: black;">setStatusBar</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">statusbar</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">retranslateUi</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
        <span style="color: #808080; font-style: italic;">#QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(&quot;clicked()&quot;), self.label_6.)</span>
        QtCore.<span style="color: black;">QMetaObject</span>.<span style="color: black;">connectSlotsByName</span><span style="color: black;">&#40;</span>mainWindow<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> retranslateUi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, mainWindow<span style="color: black;">&#41;</span>:
        mainWindow.<span style="color: black;">setWindowTitle</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;溶剂比例计算器 -Snail&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">setHtml</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:22pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;1000&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:26pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;溶剂 A&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_2</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:26pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;溶剂 B&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_3</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:26pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;体积&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_4</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:26pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;现有溶液&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_5</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:26pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;欲配溶液&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">pushButton</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;也来算一个!&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:22pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;欢迎使用溶剂比例计算器 Snail&lt;/p&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;Xiooli &amp;lt;xioooli@yahoo.com.cn&amp;gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Win<span style="color: black;">&#40;</span>QMainWindow, Ui_mainWindow<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, parent = <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
        QMainWindow.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, parent<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">setupUi</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>
    @pyqtSignature<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> on_pushButton_clicked<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;&quot;</span>
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            now_A = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">textEdit</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            now_B = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">textEdit_2</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            now_vol = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            want_A = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">textEdit_4</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            want_B = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">textEdit_5</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">ValueError</span>:
           <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;错误：有输入框未输入数字，或输入了非数字字符！&quot;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span>:
            <span style="color: #ff7700;font-weight:bold;">if</span> want_A<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A+now_B<span style="color: black;">&#41;</span> == 0 <span style="color: #ff7700;font-weight:bold;">or</span> want_B<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A+now_B<span style="color: black;">&#41;</span> == 0:
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;错误：试图除零！&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">elif</span> now_A / now_B <span style="color: #66cc66;">&gt;</span> want_A / want_B:
                vol,rst=<span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,\
                        <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">round</span><span style="color: black;">&#40;</span>now_vol<span style="color: #66cc66;">*</span>now_A<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>want_A+want_B<span style="color: black;">&#41;</span>/<span style="color: black;">&#40;</span>want_A<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A+now_B<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>-now_vol,<span style="color: #ff4500;">4</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;须向 &quot;</span> + vol + <span style="color: #483d8b;">&quot; ML 现有溶液中加入溶液 B &quot;</span> + rst + <span style="color: #483d8b;">&quot; ML&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">elif</span> now_A / now_B == want_A / want_B:
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;现有溶液和欲配溶液是同一种溶液，无须额外动作。&quot;</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                vol,rst=<span style="color: #008000;">self</span>.<span style="color: black;">textEdit_3</span>.<span style="color: black;">toPlainText</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,\
                        <span style="color: #008000;">str</span><span style="color: black;">&#40;</span><span style="color: #008000;">round</span><span style="color: black;">&#40;</span>now_vol<span style="color: #66cc66;">*</span>now_B<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>want_A+want_B<span style="color: black;">&#41;</span>/<span style="color: black;">&#40;</span>want_B<span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span>now_A+now_B<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>-now_vol,<span style="color: #ff4500;">4</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
                <span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span> = <span style="color: #483d8b;">&quot;须向 &quot;</span> + vol + <span style="color: #483d8b;">&quot; ML 现有溶液中加入溶液 A &quot;</span> + rst + <span style="color: #483d8b;">&quot; ML&quot;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">label_6</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mainWindow&quot;</span>, <span style="color: #483d8b;">&quot;&lt;!DOCTYPE HTML PUBLIC <span style="color: #000099; font-weight: bold;">\&quot;</span>-//W3C//DTD HTML 4.0//EN<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.w3.org/TR/REC-html40/strict.dtd<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=<span style="color: #000099; font-weight: bold;">\&quot;</span>qrichtext<span style="color: #000099; font-weight: bold;">\&quot;</span> content=<span style="color: #000099; font-weight: bold;">\&quot;</span>1<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&lt;style type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/css<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;p, li { white-space: pre-wrap; }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;/style&gt;&lt;/head&gt;&lt;body style=<span style="color: #000099; font-weight: bold;">\&quot;</span> font-family:<span style="color: #000099; font-weight: bold;">\'</span>Bitstream Vera Sans Mono<span style="color: #000099; font-weight: bold;">\'</span>; font-size:22pt; font-weight:400; font-style:normal;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #483d8b;">&quot;&lt;p style=<span style="color: #000099; font-weight: bold;">\&quot;</span> margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span>+<span style="color: #008000;">self</span>.<span style="color: black;">label_6_txt</span>+<span style="color: #483d8b;">&quot;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    app = QtGui.<span style="color: black;">QApplication</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#41;</span>
    win=Win<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    win.<span style="color: black;">show</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span>app.<span style="color: black;">exec_</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2009/11/pyqt-based-solution-calculator-snail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>植化流程图生成脚本</title>
		<link>http://joolix.com/2009/09/python-script-for-np-flow-diagram/</link>
		<comments>http://joolix.com/2009/09/python-script-for-np-flow-diagram/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 01:39:11 +0000</pubDate>
		<dc:creator>xiooli</dc:creator>
				<category><![CDATA[Chemistry]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[screenshot]]></category>

		<guid isPermaLink="false">http://joolix.com/?p=261</guid>
		<description><![CDATA[RT
做植化的同学写报告的时候常常要画分离的流程图，以往大家都是拖啊拖啊的，看起来就恼火，于是就写了这样一个脚本（以后我也要画这种东西嘛），可以将简单的描述语言直接生成流程图，比如，如下的语言就可以生成如下的图：
a#草药样品
b#粗分浸膏
<span class="readmore"><a href="http://joolix.com/2009/09/python-script-for-np-flow-diagram/" title="植化流程图生成脚本" target="_blank">阅读全文——共4258字</a></span>]]></description>
			<content:encoded><![CDATA[<p>RT<br />
做植化的同学写报告的时候常常要画分离的流程图，以往大家都是拖啊拖啊的，看起来就恼火，于是就写了这样一个脚本（以后我也要画这种东西嘛），可以将简单的描述语言直接生成流程图，比如，如下的语言就可以生成如下的图：</p>
<blockquote><p>a#草药样品<br />
b#粗分浸膏<br />
a#$甲醇提取=>b#<br />
c1#正丁醇相<br />
c2#石油醚相<br />
c3#&#8230;<br />
c4#水相<br />
b#^$有机溶剂萃取<br />
b#=>c1#<br />
b#=>c2#<br />
b#=>c3#<br />
b#=>c4#<br />
c2#^$继续柱层析分离<br />
c2#=>d1#成分五<br />
c2#=>d2#成分六</p></blockquote>
<p><img src="http://forum.ubuntu.org.cn/download/file.php?id=77352&#038;mode=view/a.png" alt="生成的流程图" /></p>
<p>该描述语言语法非常简单：<br />
#前面是 node 的名字，$后面是描述，=> 将两个 node 连接起来，在其中画箭头，可以连续连接 比如 a# => b# => c# 也是可以的，node 后面 => 前面的 $xxx 是线上的注释，如果某一个点要往下分支的话只需用 node#^ 即可，node#^ 后面可以直接加注释，很简单的，看上面那个例子结合图片就可以搞明白了。</p>
<p>运行该脚本需要 python-yapgvb，此脚本受弯弯同学脚本的启发并参考了部分代码（<a href="http://python.ubuntu.org.cn/viewtopic.php?f=162&#038;t=180285&#038;sid=e2ae53902848adb1d59c375bf2325043">http://python.ubuntu.org.cn/viewtopic.php?f=162&#038;t=180285&#038;sid=e2ae53902848adb1d59c375bf2325043</a>）</p>
<p>使用方法：</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">python liuchengtu.py <span style="color: #660033;">-o</span> xxx.png deffile</pre></div></div>

<p>还有很多个性化选项，请参考源码。</p>
<p>源码如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
</pre></td><td class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Author: xioooli&lt;at&gt;yahoo.com.cn,joolix.com</span>
<span style="color: #808080; font-style: italic;"># Licence GPLv2</span>
<span style="color: #808080; font-style: italic;"># Version 2009.09.09</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">import</span> yapgvb
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">optparse</span>
&nbsp;
FORMATS = <span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;png&quot;</span> : yapgvb.<span style="color: black;">formats</span>.<span style="color: black;">png</span>,
        <span style="color: #483d8b;">&quot;jpg&quot;</span> : yapgvb.<span style="color: black;">formats</span>.<span style="color: black;">jpg</span>,
        <span style="color: #483d8b;">&quot;gif&quot;</span> : yapgvb.<span style="color: black;">formats</span>.<span style="color: black;">gif</span><span style="color: black;">&#125;</span>
ENGINES = <span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;dot&quot;</span> : yapgvb.<span style="color: black;">engines</span>.<span style="color: black;">dot</span>,
        <span style="color: #483d8b;">&quot;neato&quot;</span> : yapgvb.<span style="color: black;">engines</span>.<span style="color: black;">neato</span>,
        <span style="color: #483d8b;">&quot;circo&quot;</span> : yapgvb.<span style="color: black;">engines</span>.<span style="color: black;">circo</span>,
        <span style="color: #483d8b;">&quot;twopi&quot;</span> : yapgvb.<span style="color: black;">engines</span>.<span style="color: black;">twopi</span><span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
<span style="color: #808080; font-style: italic;">#    args = sys.argv</span>
<span style="color: #808080; font-style: italic;">#    if len(args) &lt; 2:</span>
<span style="color: #808080; font-style: italic;">#        print &quot;Usage: python state_machine.py &lt;def file&gt;&quot;</span>
<span style="color: #808080; font-style: italic;">#        sys.exit(0)</span>
&nbsp;
    <span style="color: #dc143c;">parser</span> = <span style="color: #dc143c;">optparse</span>.<span style="color: black;">OptionParser</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-f&quot;</span>, <span style="color: #483d8b;">&quot;--format&quot;</span>, dest=<span style="color: #483d8b;">&quot;format&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;store the flow chart in FORMAT (png, svg, jpg, gif)&quot;</span>,
            metavar=<span style="color: #483d8b;">&quot;FORMAT&quot;</span>, default=<span style="color: #483d8b;">&quot;png&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-o&quot;</span>, <span style="color: #483d8b;">&quot;--output&quot;</span>, dest=<span style="color: #483d8b;">&quot;output&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;save the flow chart to FILE&quot;</span>,
            metavar=<span style="color: #483d8b;">&quot;FILE&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-e&quot;</span>, <span style="color: #483d8b;">&quot;--engine&quot;</span>, dest=<span style="color: #483d8b;">&quot;engine&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the layout ENGINE to use for the flow chart (dot, neato, circo, twopi)&quot;</span>,
            metavar=<span style="color: #483d8b;">&quot;ENGINE&quot;</span>, default=<span style="color: #483d8b;">&quot;dot&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-c&quot;</span>, <span style="color: #483d8b;">&quot;--color&quot;</span>, dest=<span style="color: #483d8b;">&quot;fillcolor&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the fillcolor of the node&quot;</span>,
            default=<span style="color: #483d8b;">&quot;white&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--fs&quot;</span>, <span style="color: #483d8b;">&quot;--font-size&quot;</span>, dest=<span style="color: #483d8b;">&quot;fontsize&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the font size of the text&quot;</span>,
            default=<span style="color: #483d8b;">&quot;12&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--nfc&quot;</span>, <span style="color: #483d8b;">&quot;--node-font-color&quot;</span>, dest=<span style="color: #483d8b;">&quot;nodefontcolor&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the fillcolor of the font in node&quot;</span>,
            default=<span style="color: #483d8b;">&quot;black&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--nc&quot;</span>, <span style="color: #483d8b;">&quot;--node-color&quot;</span>, dest=<span style="color: #483d8b;">&quot;nodecolor&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the color of the node frame&quot;</span>,
            default=<span style="color: #483d8b;">&quot;black&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--ec&quot;</span>, <span style="color: #483d8b;">&quot;--edge-color&quot;</span>, dest=<span style="color: #483d8b;">&quot;edgecolor&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the color of the edge&quot;</span>,
            default=<span style="color: #483d8b;">&quot;black&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--efc&quot;</span>, <span style="color: #483d8b;">&quot;--edge-font-color&quot;</span>, dest=<span style="color: #483d8b;">&quot;edgefontcolor&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the font color of the edge text&quot;</span>,
            default=<span style="color: #483d8b;">&quot;black&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-s&quot;</span>, <span style="color: #483d8b;">&quot;--style&quot;</span>, dest=<span style="color: #483d8b;">&quot;style&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the style of the node&quot;</span>,
            default=<span style="color: #483d8b;">&quot;filled&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--ah&quot;</span>, <span style="color: #483d8b;">&quot;--arrowhead&quot;</span>, dest=<span style="color: #483d8b;">&quot;arrowhead&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the style of the arrowhead&quot;</span>,
            default=<span style="color: #483d8b;">&quot;normal&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--as&quot;</span>, <span style="color: #483d8b;">&quot;--arrowsize&quot;</span>, dest=<span style="color: #483d8b;">&quot;arrowsize&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the size of the arrow&quot;</span>,
            default=<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--ns&quot;</span>, <span style="color: #483d8b;">&quot;--nodesep&quot;</span>, dest=<span style="color: #483d8b;">&quot;nodesep&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the sepration between two nodes&quot;</span>,
            default=.5<span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;--sp&quot;</span>, <span style="color: #483d8b;">&quot;--shape&quot;</span>, dest=<span style="color: #483d8b;">&quot;shape&quot;</span>,
            <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;the shape of the node&quot;</span>,
            default=<span style="color: #483d8b;">&quot;box&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
    options, args = <span style="color: #dc143c;">parser</span>.<span style="color: black;">parse_args</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>args<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">1</span>:
        <span style="color: #dc143c;">parser</span>.<span style="color: black;">print_usage</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span>0<span style="color: black;">&#41;</span>
&nbsp;
    graph = yapgvb.<span style="color: black;">Graph</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;States&quot;</span><span style="color: black;">&#41;</span>
    graph.<span style="color: black;">rankdir</span>=<span style="color: #483d8b;">&quot;TB&quot;</span>
    graph.<span style="color: black;">nodesep</span>=options.<span style="color: black;">nodesep</span>
    node_dict = <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
&nbsp;
    with <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>args<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span> as def_file:
        lines = <span style="color: black;">&#91;</span>l.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">for</span> l <span style="color: #ff7700;font-weight:bold;">in</span> def_file.<span style="color: black;">readlines</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> lines:
            nodes = line.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;=&gt;&quot;</span><span style="color: black;">&#41;</span>
            prev_node = <span style="color: #008000;">None</span>
            <span style="color: #ff7700;font-weight:bold;">for</span> node <span style="color: #ff7700;font-weight:bold;">in</span> nodes<span style="color: black;">&#91;</span>::-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>:
                label = node.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;#&quot;</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> node_dict.<span style="color: black;">has_key</span><span style="color: black;">&#40;</span>label<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> label<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;&quot;</span>:
                    <span style="color: #ff7700;font-weight:bold;">try</span>:
                        lb=label<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;$&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>
                    <span style="color: #ff7700;font-weight:bold;">except</span>:
                        lb=<span style="color: #483d8b;">&quot;&quot;</span>
                    node_in_graph = graph.<span style="color: black;">add_node</span><span style="color: black;">&#40;</span>label=lb,
                            shape=options.<span style="color: black;">shape</span>, fillcolor=options.<span style="color: black;">fillcolor</span>,
                            fontcolor=options.<span style="color: black;">nodefontcolor</span>, fontsize=options.<span style="color: black;">fontsize</span>,
                            style=options.<span style="color: black;">style</span>, color=options.<span style="color: black;">nodecolor</span>, width=<span style="color: #ff4500;">0.5</span><span style="color: black;">&#41;</span>
                    node_dict<span style="color: black;">&#91;</span>label<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> = node_in_graph
                <span style="color: #ff7700;font-weight:bold;">elif</span> label<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;&quot;</span>:
                    node_in_graph = node_dict<span style="color: black;">&#91;</span>label<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
&nbsp;
                <span style="color: #ff7700;font-weight:bold;">try</span>:
                       blanknode = node.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;#^&quot;</span><span style="color: black;">&#41;</span>
                       <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>blanknode<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #ff4500;">2</span>:
                           blanknode = blanknode<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>
                       <span style="color: #ff7700;font-weight:bold;">else</span>:
                           blanknode = <span style="color: #483d8b;">&quot;&quot;</span>
                <span style="color: #ff7700;font-weight:bold;">except</span>:
                       blanknode = <span style="color: #483d8b;">&quot;&quot;</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> node_dict.<span style="color: black;">has_key</span><span style="color: black;">&#40;</span>blanknode<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> blanknode <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;&quot;</span>:
                    node_dict<span style="color: black;">&#91;</span>blanknode + <span style="color: #483d8b;">&quot;_0&quot;</span><span style="color: black;">&#93;</span> = node_dict<span style="color: black;">&#91;</span>blanknode<span style="color: black;">&#93;</span>
                    node_in_graph = graph.<span style="color: black;">add_node</span><span style="color: black;">&#40;</span>label=<span style="color: #483d8b;">&quot;&quot;</span>,     
                            shape=<span style="color: #483d8b;">&quot;circle&quot;</span>, fillcolor=options.<span style="color: black;">edgecolor</span>,
                            color=options.<span style="color: black;">edgecolor</span>, style=<span style="color: #483d8b;">&quot;filled&quot;</span>, height=.05, width=.05<span style="color: black;">&#41;</span>
                    node_dict<span style="color: black;">&#91;</span>blanknode<span style="color: black;">&#93;</span> = node_in_graph
                    edge = node_dict<span style="color: black;">&#91;</span>blanknode + <span style="color: #483d8b;">&quot;_0&quot;</span><span style="color: black;">&#93;</span> - node_dict<span style="color: black;">&#91;</span>blanknode<span style="color: black;">&#93;</span>
                    edge.<span style="color: black;">color</span>=options.<span style="color: black;">edgecolor</span>
                    <span style="color: #ff7700;font-weight:bold;">try</span>:
                        edge.<span style="color: black;">label</span>=<span style="color: #483d8b;">&quot; &quot;</span>+node.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;$&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
                        edge.<span style="color: black;">fontcolor</span>=options.<span style="color: black;">edgefontcolor</span>
                        edge.<span style="color: black;">fontsize</span>=options.<span style="color: black;">fontsize</span>
                    <span style="color: #ff7700;font-weight:bold;">except</span>:
                        <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
                <span style="color: #ff7700;font-weight:bold;">if</span> prev_node:
                    edge = node_in_graph - prev_node
                    edge.<span style="color: black;">color</span>=options.<span style="color: black;">edgecolor</span>
                    edge.<span style="color: black;">arrowhead</span> = options.<span style="color: black;">arrowhead</span>
                    edge.<span style="color: black;">arrowsize</span> = options.<span style="color: black;">arrowsize</span>
                    <span style="color: #ff7700;font-weight:bold;">try</span>:
                        edge.<span style="color: black;">label</span>=<span style="color: #483d8b;">&quot; &quot;</span>+node.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;$&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
                        edge.<span style="color: black;">fontcolor</span>=options.<span style="color: black;">edgefontcolor</span>
                        edge.<span style="color: black;">fontsize</span>=options.<span style="color: black;">fontsize</span>
                    <span style="color: #ff7700;font-weight:bold;">except</span>:
                        <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
                prev_node = node_in_graph
&nbsp;
    graph.<span style="color: black;">layout</span><span style="color: black;">&#40;</span>ENGINES<span style="color: black;">&#91;</span>options.<span style="color: black;">engine</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
    format = FORMATS<span style="color: black;">&#91;</span>options.<span style="color: black;">format</span><span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> options.<span style="color: black;">output</span>:
        out_file = options.<span style="color: black;">output</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        out_file = args<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> + <span style="color: #483d8b;">&quot;.&quot;</span> + format
&nbsp;
    graph.<span style="color: black;">render</span><span style="color: black;">&#40;</span>out_file, format<span style="color: black;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://joolix.com/2009/09/python-script-for-np-flow-diagram/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
