<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_游动的姜</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/46773/rss</id><updated>2012-01-28T12:41:57Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/46773/rss"/><entry><id>http://www.cnblogs.com/pcode/archive/2012/01/28/2330694.html</id><title type="text">如何在PySide中使用qrc资源文件</title><summary type="text">网上找到的都是rcc的使用方法，对于PySide-rcc介绍较少，经过对rcc和pyside-rcc试验和整理处使用的方法，形成文字，技术备档。Resource Collection Files (.qrc)应用程序关联的应用程序由 .qrc 文件来指定，它用XML记录硬盘上的文件和对应的随意指定的资源名称，应用程序通过资源名称来访问资源。1.创建一个qrc 文件：&amp;lt;!DOCTYPE RCC&amp;gt;&amp;lt;RCC version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;qresource&amp;gt; &amp;lt;file&amp;gt;images/cut.png&amp;lt;/file&amp;gt; &amp;lt</summary><published>2012-01-28T12:40:00Z</published><updated>2012-01-28T12:40:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2012/01/28/2330694.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2012/01/28/2330694.html"/><content type="html">&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span&gt;网上找到的都是rcc的使用方法，对于PySide-rcc介绍较少，经过对rcc和pyside-rcc试验和整理处使用的方法，形成文字，技术备档。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span&gt;Resource Collection Files (.qrc)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;应用程序关联的应用程序由 .qrc 文件来指定，它用XML记录硬盘上的文件和对应的随意指定的资源名称，应用程序通过资源名称来访问资源。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;1.创建一个qrc 文件：&lt;/div&gt;&#xD;
&lt;div&gt;&amp;lt;!DOCTYPE RCC&amp;gt;&amp;lt;RCC version="1.0"&amp;gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;lt;qresource&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;file&amp;gt;images/cut.png&amp;lt;/file&amp;gt;&lt;br /&gt; &amp;lt;/qresource&amp;gt;&lt;br /&gt; &amp;lt;/RCC&amp;gt;&lt;/div&gt;&#xD;
&lt;div&gt;2.&lt;span style="color: #ad0000;"&gt;windows下需要设置系统path里加上C:\Python27\Lib\site-packages\PySide目录，这样才能使用pyside-rcc命令（Resource Compiler for PySide）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;3.pyside-rcc myresource.qrc -o myresource_rc.py&lt;/div&gt;&#xD;
&lt;div&gt;4.引用&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;myresource_rc.py&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;在程序中把原来引用文件的地方更换为&lt;/span&gt;&amp;nbsp;:/cut-img.png ，如果没有指定file alias可以使用:/images/cut.png调用&lt;/div&gt;&#xD;
&lt;div&gt;5.完成&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;PS:&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;文件里使用的路径是 .qrc 文件所在目录的相对路径。注意，内部使用的资源文件必须位于 .qrc 文件所在目录或者其子目录下。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;资源数据也能被编译进二进制文件中，因此应用程序代码可以立即访问；也可以创建一个二进制资源，稍后在程序中登记了资源体系的代码中指定。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;缺省时，程序可以用资源在源码树中的名称加一个 :/ 前缀来访问它。例如，在程序的源码树中是 images/cut.png 的文件可以通过 :/images/cut.png 来访问。但也可以用 file 标签中的 alias 属性来指定：&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;file alias="cut-img.png"&amp;gt;images/cut.png&amp;lt;/file&amp;gt;&lt;br /&gt;&#xD;
&amp;lt;qresource prefix="/myresources"&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;file alias="cut-img.png"&amp;gt;images/cut.png&amp;lt;/file&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;/qresource&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;调用是使用 :/myresources/cut-img.png 调用。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;PS：如有需要多国语言是。这可以在 qresource 标签的 lang 属性中指定一个合适的本地化字串来实现。例如：&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;qresource&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;file&amp;gt;cut.jpg&amp;lt;/file&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;/qresource&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;qresource lang="fr"&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;file alias="cut.jpg"&amp;gt;cut_fr.jpg&amp;lt;/file&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&amp;lt;/qresource&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="border-collapse: separate; color: #000000; font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;如果用户的本地化设置是 French (也就是说，QLocale::system().name() returns "fr_FR")，:/cut.jpg 就会引用 cut_fr.jpg 图像。对于其他本地化设置，仍然用 cut.jpg 。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pcode/aggbug/2330694.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pcode/archive/2012/01/28/2330694.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pcode/archive/2012/01/27/2330218.html</id><title type="text">【原创】Python结合PySide使用QT编写ImageViewer[从C++迁移简化]</title><summary type="text">近期正在学习QT。用Python很久了，QT入门中。PySide做的太棒了。代码不需要修改直接可以运行在Nokia N9上。本代码的C++版本在http://developer.qt.nokia.com/doc/qt-4.8/widgets-imageviewer.html目的是学习不是为了实现一个软件，所以做了不少的简化。QPixmap和QImage都能显示图片，可还是用QImage读取，放QPixmap显示，我查了资料 http://www.developer.nokia.com/C ... 8%E8%A7%A3%E6%9E%90总结下来QPixmap依赖于硬件，性能更好消耗资源，QIma</summary><published>2012-01-27T13:30:00Z</published><updated>2012-01-27T13:30:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2012/01/27/2330218.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2012/01/27/2330218.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;近期正在学习QT。用Python很久了，QT入门中。PySide做的太棒了。代码不需要修改直接可以运行在Nokia N9上。&lt;br /&gt;&#xD;
本代码的C++版本在&lt;a href="http://developer.qt.nokia.com/doc/qt-4.8/widgets-imageviewer.html" target="_blank"&gt;http://developer.qt.nokia.com/doc/qt-4.8/widgets-imageviewer.html&lt;/a&gt;&lt;br /&gt;&#xD;
目的是学习不是为了实现一个软件，所以做了不少的简化。&lt;br /&gt;&#xD;
QPixmap和QImage都能显示图片，可还是用QImage读取，放QPixmap显示，我查了资料 &lt;a href="http://www.developer.nokia.com/Community/Wiki/%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E5%9C%B0%E5%9C%A8%E6%89%8B%E6%9C%BA%E4%B8%8A%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87%E2%80%94%E2%80%94QImage%E4%B8%8EQPixmap%E5%AE%8C%E5%85%A8%E8%A7%A3%E6%9E%90" target="_blank"&gt;http://www.developer.nokia.com/C ... 8%E8%A7%A3%E6%9E%90&lt;/a&gt;&lt;br /&gt;&#xD;
总结下来QPixmap依赖于硬件，性能更好消耗资源，QImage不依赖于硬件用来预先处理图片后方QPixmap显示更加速度。&lt;br /&gt;&#xD;
以下为源码。&lt;br /&gt;&#xD;
ps：自己写的其他QT程序放进N9，桌面图标啥的没问题，但是不能滑动退出，也不能竖屏，只能横屏，请大侠指点一下。&lt;br /&gt;&#xD;
运行效果&lt;br /&gt;&#xD;
&lt;/span&gt; &lt;img id="aimg_9047"  title="ImageViewer" src="http://www.tizen.cc/data/attachment/forum/201201/27/212533tamjod29r95ath9g.jpg" alt="ImageViewer" width="589" /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;#coding=utf8&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;import sys&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;__author__ = 'jy@cjlu.edu.cn'&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;from PySide.QtCore import *&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;from PySide.QtGui import *&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;class ImageViewer(QMainWindow):&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; def __init__(self,parent=None):&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;super(ImageViewer,self).__init__(parent)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.imageLabel=QLabel()&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.imageLabel.setBackgroundRole(QPalette.Base)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.imageLabel.setSizePolicy(QSizePolicy.Ignored,QSizePolicy.Ignored)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;#&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;是否变换比率&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.imageLabel.setScaledContents(True)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.imageLabel.resize(500,400)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.scrollArea=QScrollArea()&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.scrollArea.setBackgroundRole(QPalette.Dark)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.scrollArea.setWidget(self.imageLabel)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.setCentralWidget(self.scrollArea)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.createActions()&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.createMenus()&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.setWindowTitle("Image Viewer")&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.resize(500,400)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; def __open(self):&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;filename=QFileDialog.getOpenFileName(None,"OpenFile",QDir.currentPath())[0]&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;if filename:&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;self.image=QImage(filename)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if not self.image:&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; QMessageBox.information(None,"Error","Cannot load ")&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;else:&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; self.imageLabel.setPixmap(QPixmap.fromImage(self.image))&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; self.imageLabel.adjustSize()&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; self.scrollArea.setWidgetResizable(True)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; def createActions(self):&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.openAct=QAction("&amp;amp;Open...",None)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.openAct.setShortcut("Ctrl+O")&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.openAct.triggered.connect(self.__open)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.closeAct=QAction("&amp;amp;Close...",None)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.closeAct.setShortcut("Ctrl+Q")&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.closeAct.triggered.connect(self.close)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; def createMenus(self):&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.fileMenu=QMenu("&amp;amp;File",self)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.fileMenu.addAction(self.openAct)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.fileMenu.addAction(self.closeAct)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.mb=self.menuBar()&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;self.mb.addMenu(self.fileMenu)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;if __name__=="__main__":&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; app=QApplication(sys.argv)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; fm=ImageViewer()&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; fm.show()&lt;br /&gt; #全屏使用下句&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;#&amp;nbsp; &amp;nbsp; fm.showFullScreen()&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: 宋体;"&gt;&amp;nbsp; &amp;nbsp; app.exec_()&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pcode/aggbug/2330218.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pcode/archive/2012/01/27/2330218.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pcode/archive/2011/08/23/2151059.html</id><title type="text">纠结mac os x下的python开发吗？安装MySQLdb还要配来配去的？我去，这样就能解决</title><summary type="text">你有python安装MySQLdb的问题吗，我有，经历了，近两天的纠结，真是把baidu都百了个遍，仍然不能解决mac os x 10.6.8下python 2.6.1里面安装个MySQLdb。windows下修改几处代码就能用了，ubuntu下直接easy_install就能用。只有mac os 多灾多难。神仙知道我为这个事花了多少工夫。最后的解决是安装 active python真的兄弟们别纠结了，用active python ,用pypm install MySQLdb，你会发现一切如windows里安装个盗版一样安宁。我去。怎么没人告诉我，现在我来告诉你。用active python,</summary><published>2011-08-23T09:28:00Z</published><updated>2011-08-23T09:28:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2011/08/23/2151059.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2011/08/23/2151059.html"/><content type="html">&lt;p&gt;你有python安装MySQLdb的问题吗，我有，经历了，近两天的纠结，真是把baidu都百了个遍，仍然不能解决mac os x 10.6.8下python 2.6.1里面安装个MySQLdb。&lt;/p&gt;&#xD;
&lt;p&gt;windows下修改几处代码就能用了，ubuntu下直接easy_install就能用。只有mac os 多灾多难。&lt;/p&gt;&#xD;
&lt;p&gt;神仙知道我为这个事花了多少工夫。&lt;/p&gt;&#xD;
&lt;p&gt;最后的解决是安装 active python&lt;/p&gt;&#xD;
&lt;p&gt;真的兄弟们别纠结了，用active python ,用pypm install MySQLdb，你会发现一切如windows里安装个盗版一样安宁。&lt;/p&gt;&#xD;
&lt;p&gt;我去。怎么没人告诉我，现在我来告诉你。&lt;/p&gt;&#xD;
&lt;p&gt;用active python,用pypm 就这么简单。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pcode/aggbug/2151059.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pcode/archive/2011/08/23/2151059.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pcode/archive/2011/07/22/2114363.html</id><title type="text">[数据备档]源码用的百家姓的数组，实用</title><summary type="text">百家姓网上都能查到，但整理成适合源码使用的数组也花了我几分钟时间。还为此专门写了一面python代码来对齐数据。帖出来以备后用。#共计整理了480个姓，有些我从来都没听说过FISRT_NAME_DATA=( &amp;#39;赵&amp;#39;,&amp;#39;钱&amp;#39;,&amp;#39;孙&amp;#39;,&amp;#39;李&amp;#39;,&amp;#39;周&amp;#39;,&amp;#39;吴&amp;#39;,&amp;#39;郑&amp;#39;,&amp;#39;王&amp;#39;,&amp;#39;冯&amp;#39;,&amp;#39;陈&amp;#39;, &amp;#39;褚&amp;#39;,&amp;#39;卫&amp;#39;,&amp;#39;蒋&amp;#39;,&amp;#39;沈&amp;#39;,&amp;#39;韩&amp;#39;,&amp;#39;杨&amp;#39;,&amp;#3</summary><published>2011-07-22T12:19:00Z</published><updated>2011-07-22T12:19:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2011/07/22/2114363.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2011/07/22/2114363.html"/><content type="html">&lt;p&gt;百家姓网上都能查到，但整理成适合源码使用的数组也花了我几分钟时间。还为此专门写了一面python代码来对齐数据。&lt;/p&gt;&#xD;
&lt;p&gt;帖出来以备后用。&lt;/p&gt;&#xD;
&lt;p&gt;#共计整理了480个姓，有些我从来都没听说过&lt;/p&gt;&#xD;
&lt;p&gt;FISRT_NAME_DATA=(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '赵','钱','孙','李','周','吴','郑','王','冯','陈',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '褚','卫','蒋','沈','韩','杨','朱','秦','尤','许',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '何','吕','施','张','孔','曹','严','华','金','魏',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '陶','姜','戚','谢','邹','喻','柏','水','窦','章',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '云','苏','潘','葛','奚','范','彭','郎','鲁','韦',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '昌','马','苗','凤','花','方','俞','任','袁','柳',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '酆','鲍','史','唐','费','廉','岑','薛','雷','贺',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '倪','汤','滕','殷','罗','毕','郝','邬','安','常',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '乐','于','时','傅','皮','卞','齐','康','伍','余',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '元','卜','顾','孟','平','黄','和','穆','萧','尹',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '姚','邵','湛','汪','祁','毛','禹','狄','米','贝',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '明','臧','计','伏','成','戴','谈','宋','茅','庞',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '熊','纪','舒','屈','项','祝','董','粱','杜','阮',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '蓝','闵','席','季','麻','强','贾','路','娄','危',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '江','童','颜','郭','梅','盛','林','刁','钟','徐',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '邱','骆','高','夏','蔡','田','樊','胡','凌','霍',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '虞','万','支','柯','咎','管','卢','莫','经','房',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '裘','缪','干','解','应','宗','宣','丁','贲','邓',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '郁','单','杭','洪','包','诸','左','石','崔','吉',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '钮','龚','程','嵇','邢','滑','裴','陆','荣','翁',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '荀','羊','於','惠','甄','麴','加','封','芮','羿',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '储','汲','邴','糜','松','井','段','富','巫','乌',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '焦','巴','弓','牧','隗','山','谷','车','侯','宓',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '蓬','全','郗','班','仰','秋','仲','伊','宫','宁',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '仇','栾','暴','甘','钭','厉','戎','祖','武','符',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '刘','景','詹','束','龙','叶','幸','司','韶','郜',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '黎','蓟','薄','印','宿','白','怀','蒲','台','从',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '鄂','索','咸','籍','赖','卓','蔺','屠','胥','能',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '苍','双','闻','莘','党','翟','谭','贡','劳','逄',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '姬','申','扶','堵','冉','宰','郦','雍','郤','璩',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '桑','桂','濮','牛','寿','通','边','扈','燕','冀',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '郏','浦','尚','农','温','别','庄','晏','柴','瞿',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '阎','充','慕','连','茹','习','宦','艾','鱼','容',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '向','古','易','慎','戈','廖','庚','终','暨','居',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '衡','步','都','耿','满','弘','匡','国','文','寇',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '广','禄','阙','东','殴','殳','沃','利','蔚','越',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '夔','隆','师','巩','厍','聂','晁','勾','敖','融',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '冷','訾','辛','阚','那','简','饶','空','曾','毋',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '沙','乜','养','鞠','须','丰','巢','关','蒯','相',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '查','后','荆','红','游','竺','权','逯','盖','益',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '桓','公','万','俟','司','马','上官','欧阳','夏侯','诸葛',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '闻人','东方','赫连','皇甫','尉迟','公羊','澹台','公冶','宗政','濮阳',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '淳于','仲孙','太叔','申屠','公孙','乐正','轩辕','令狐','钟离','闾丘',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '长孙','慕容','鲜于','宇文','司徒','司空','亓官','司寇','仉督','子车',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '颛孙','端木','巫马','公西','漆雕','乐正','壤驷','公良','拓拔','夹谷',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '宰父','谷粱','晋楚','闫法','汝鄢','涂钦','段干','百里','东郭','南门',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '呼延','妫海','羊舌','微生','岳帅','缑亢','况後','有琴','梁丘','左丘',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '东门','西门','商牟','佘佴','伯赏','南宫','墨哈','谯笪','年爱','阳佟'&lt;br /&gt;)&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pcode/aggbug/2114363.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pcode/archive/2011/07/22/2114363.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pcode/archive/2011/07/18/2109939.html</id><title type="text">【技术备档】windows平台下快速配置MySQL-Python的方法</title><summary type="text">近期项目中应用到python访问mysql数据库，配置过程中有些麻烦和意外，做一个技术备档，方便自己和有相同问题的人参考。软件环境:python 2.6.6MySQL-Python 1.2.2windows xp 或win7问题：1、找不到指定模块时 dll2、DeprecationWarning: the sets module is deprecatedfrom sets import ImmutableSet解决：复制DLL到指定目录，并修订MySQL-Python的源码。为了快速配置，可下载附件文件，参照使用说明配置。以下为说明文件内容：========================</summary><published>2011-07-18T12:27:00Z</published><updated>2011-07-18T12:27:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2011/07/18/2109939.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2011/07/18/2109939.html"/><content type="html">&lt;p&gt;近期项目中应用到python访问mysql数据库，配置过程中有些麻烦和意外，做一个技术备档，方便自己和有相同问题的人参考。&lt;/p&gt;&#xD;
&lt;p&gt;软件环境:&lt;/p&gt;&#xD;
&lt;p&gt;python 2.6.6&lt;/p&gt;&#xD;
&lt;p&gt;MySQL-Python 1.2.2&lt;/p&gt;&#xD;
&lt;p&gt;windows xp 或win7&lt;/p&gt;&#xD;
&lt;p&gt;问题：&lt;/p&gt;&#xD;
&lt;p&gt;1、找不到指定模块时 dll&lt;/p&gt;&#xD;
&lt;p&gt;2、DeprecationWarning: the sets module is deprecated&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;from sets import ImmutableSet&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;解决：&lt;/p&gt;&#xD;
&lt;p&gt;复制DLL到指定目录，并修订MySQL-Python的源码。&lt;/p&gt;&#xD;
&lt;p&gt;为了快速配置，可下载附件文件，参照使用说明配置。&lt;/p&gt;&#xD;
&lt;p&gt;以下为说明文件内容：&lt;/p&gt;&#xD;
&lt;p&gt;==================================&lt;/p&gt;&#xD;
&lt;p&gt;win平台下配置PythonMysql的简单方法&lt;/p&gt;&#xD;
&lt;p&gt;==================================&lt;/p&gt;&#xD;
&lt;p&gt;1、解压MySQL-python-1.2.2.win32-py2.6.rar&lt;/p&gt;&#xD;
&lt;p&gt;2、运行MySQL-python-1.2.2.win32-py2.6.exe完成MySQL-python1.2.2版本的安装&lt;/p&gt;&#xD;
&lt;p&gt;3、复制lib目录到python 2.6的安装目录中，覆盖原lib目录&lt;/p&gt;&#xD;
&lt;p&gt;4、根据实际情况修订testmysql.py代码，运行测试连接是否正常&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;==================================&lt;/p&gt;&#xD;
&lt;p&gt;补充：对于MySQL-python 1.2.2源码的修订说明&lt;/p&gt;&#xD;
&lt;p&gt;==================================&lt;/p&gt;&#xD;
&lt;p&gt;找到Python26\lib\site-packages\MySQLdb下的__init__.py文件&lt;/p&gt;&#xD;
&lt;p&gt;1、在文件中 "__init__", 注释掉:&lt;/p&gt;&#xD;
&lt;p&gt;from sets import ImmutableSet&lt;/p&gt;&#xD;
&lt;p&gt;class DBAPISet(ImmutableSet):&lt;/p&gt;&#xD;
&lt;p&gt;新增:&lt;/p&gt;&#xD;
&lt;p&gt;class DBAPISet(frozenset):&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2、在文件中"converters.py", 注释掉 &amp;nbsp;from sets import BaseSet, Set 这一句话。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3、在文件中"converters.py", 修改 "Set" 成为 "set" ( 只有两个地方需要修改):&lt;/p&gt;&#xD;
&lt;p&gt;大概 line 48: return Set([ i for i in s.split(',') if i ])----&amp;gt;变成-----&amp;gt; return set([ i for i in s.split(',') if i ])&lt;/p&gt;&#xD;
&lt;p&gt;大概 line 128: Set: Set2Str, ----&amp;gt; set: Set2Str&lt;/p&gt;&#xD;
&lt;p&gt;复制的lib目录是将需要的dll及源码均配置安后的结果。可直接覆盖使用。&lt;/p&gt;&#xD;
&lt;div&gt;===================================================================&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;没有创新，以上问题的解决均来自互联网。整理一下方便自己和大家。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;a href="http://files.cnblogs.com/pcode/快速配置.rar"&gt;点击下载快速配置&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/pcode/aggbug/2109939.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pcode/archive/2011/07/18/2109939.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pcode/archive/2010/03/18/1687313.html</id><title type="text">【技术备档】在WinCE5.0下实现透明背景按钮(.net C#)</title><summary type="text">描述如何在Wince 下实现 透明控件 特别是实现非矩形按钮</summary><published>2010-03-18T08:27:00Z</published><updated>2010-03-18T08:27:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2010/03/18/1687313.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2010/03/18/1687313.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: large;"&gt;问题：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;需要在wince5.0下实现图形化界面，用于功能导航，用过GPS导航就知道了，类似的界面。众所周知gif，PNG等图片，都是可以实现透明背景的，在win下这应该不是个问题。但在ce5.0下，无论是透明背景的ICON、PNG、GIF都无法简单实现透明背景，alpha通道会丢失。网上搜索了些资料，当然也有办法解决，大家可以查一下，但性能较低。最终按微软SDK自带的一个计算器的源码思路解决了透明背景按钮问题。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: large;"&gt;要点：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;如何画透明背景的BMP&lt;/li&gt;&#xD;
&lt;li&gt;如何画按钮并实现事件&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: large;"&gt;思路及解决：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;画按钮的思路：&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;ImageAttributes imageAttr=new ImageAttributes();&lt;/p&gt;&#xD;
&lt;p&gt;imageAttr.SetColorKey(Color.FromArgb(255, 0, 255),Color.FromArgb(255, 0, 255));&lt;/p&gt;&#xD;
&lt;p&gt;然后使用Graphics.DrawImage(,,,,,imageAttr)函数在指定的位置上画出透明的图片。&lt;/p&gt;&#xD;
&lt;p&gt;2. 事件驱动的思路：&lt;/p&gt;&#xD;
&lt;p&gt;事先定义好各按钮的指令&lt;/p&gt;&#xD;
&lt;p&gt;public enum Command {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd1 = 0,//无操作&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd2,//第一项操作&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd3,//第二项操作&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd4,//可自己扩展&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;在创建按钮的同时明确以下几个参数 容器控件、资源存放的目录、X坐标、Y坐标、背景图片、按钮的标题、非激活时的文字颜色、激活时的文字颜色、触发的指令。创建窗口，针对窗体事件做如下定义&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;在Form_Load时生成按钮，&lt;/li&gt;&#xD;
&lt;li&gt;在Form_OnPaint时使用按钮自身的Render函数根据自己状态（有没有被点中）重画，&lt;/li&gt;&#xD;
&lt;li&gt;在MouseDown时判断点击位置是否在某个按钮的内部，如果是在它内部就改变它的状态，设置状态的同时调用窗口控件的Graphics局部重画这个按钮，　　　　&lt;/li&gt;&#xD;
&lt;li&gt;在Form_MouseUp时判断现在的位置是不是在按钮内部，如果按下了，抬起时又移出了范围则不处理。如果按下与抬起都是在同一个按钮的边界内部则执行这个按钮所设置的指令。&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;以下是我使用的资源，将作为按钮的图片需要透明的部分设置成RGB(255,0,255)，那种非常刺眼的颜色。以下图片可以另存为BMP使用，设置的分辨是800*600的CE设备。&lt;/p&gt;&#xD;
&lt;p&gt;按钮未点击时背景：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/pcode/201003/2010031615533219.gif" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;按钮点中时背景：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/pcode/201003/2010031615534289.gif" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;窗体抬头的背景：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img width="397" src="http://pic002.cnblogs.com/img/pcode/201003/2010031708324090.gif" height="38" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;放置按钮的大背景：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img width="395" src="http://pic002.cnblogs.com/img/pcode/201003/2010031616010493.gif" height="296" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第三步：代码实现&lt;/p&gt;&#xD;
&lt;p&gt;创建窗体名称ImageButton，设置窗体的Menu为空TopMost=true,Size=800,600,ControlBox=false,FormBorderStyle=None&lt;/p&gt;&#xD;
&lt;pre &gt;using System;&#xD;
using System.Collections.Generic;&#xD;
using System.ComponentModel;&#xD;
using System.Data;&#xD;
using System.Drawing;&#xD;
using System.Text;&#xD;
using System.Windows.Forms;&#xD;
using System.IO;&#xD;
using System.Reflection;&#xD;
&#xD;
namespace DZB&#xD;
{&#xD;
    public partial class ImageButton : Form&#xD;
    {&#xD;
        private IList&amp;lt;IButton&amp;gt; btnlist;&#xD;
        private IButton capturedButton;&#xD;
        private Font windowFont = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular);&#xD;
        private string CurrentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);&#xD;
        private Bitmap bg, title;&#xD;
        public ImageButton()&#xD;
        {&#xD;
            InitializeComponent();&#xD;
        }&#xD;
&#xD;
        private void ImageButton_Load(object sender, EventArgs e)&#xD;
        {&#xD;
            title = new Bitmap(CurrentPath + @"\Resources\title.bmp");&#xD;
            bg = new Bitmap(CurrentPath + @"\Resources\mainbg.bmp");&#xD;
            btnlist = new List&amp;lt;IButton&amp;gt;();&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 100, 100, "button.bmp", "按钮1", Color.White, Color.Blue, Command.cmd1));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 100, 200, "button.bmp", "按钮2", Color.White, Color.Blue, Command.cmd1));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 100, 300, "button.bmp", "按钮3", Color.White, Color.Blue, Command.cmd2));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 100, 400, "button.bmp", "按钮4", Color.White, Color.Blue, Command.cmd2));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 400, 100, "button.bmp", "按钮5", Color.White, Color.Blue, Command.cmd2));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 400, 200, "button.bmp", "按钮6", Color.White, Color.Blue, Command.cmd2));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 400, 300, "button.bmp", "按钮7", Color.White, Color.Blue, Command.cmd2));&#xD;
            btnlist.Add(new IButton(this, CurrentPath + @"\Resources\", 400, 400, "button.bmp", "按钮8", Color.White, Color.Blue, Command.cmd3));&#xD;
        }&#xD;
&#xD;
        private void ImageButton_Paint(object sender, PaintEventArgs e)&#xD;
        {&#xD;
            // Buttons&#xD;
            Graphics graphics;&#xD;
&#xD;
            graphics = e.Graphics;&#xD;
            graphics.DrawImage(title, 0, 0);&#xD;
            graphics.DrawImage(bg, 0, 63);&#xD;
            // Edit line&#xD;
            foreach (IButton btn in btnlist)&#xD;
            {&#xD;
                btn.Render(graphics);&#xD;
            }&#xD;
        }&#xD;
        protected override void OnPaintBackground(PaintEventArgs paintArgs)&#xD;
        {&#xD;
&#xD;
            //gr.DrawImage(img, 0, 0);&#xD;
            base.OnPaintBackground(paintArgs);&#xD;
        }&#xD;
        ~ImageButton()&#xD;
        {&#xD;
            windowFont.Dispose();&#xD;
        }&#xD;
&#xD;
        private void ImageButton_MouseDown(object sender, MouseEventArgs e)&#xD;
        {&#xD;
            foreach (IButton btn in btnlist)&#xD;
            {&#xD;
                if (btn.IsHit(e.X, e.Y))&#xD;
                {&#xD;
                    btn.IsSelected = true;&#xD;
                    capturedButton = btn;&#xD;
                    break;&#xD;
                }&#xD;
            }&#xD;
        }&#xD;
&#xD;
        private void ImageButton_MouseMove(object sender, MouseEventArgs e)&#xD;
        {&#xD;
            if (capturedButton != null)&#xD;
            {&#xD;
                capturedButton.IsSelected = capturedButton.IsHit(e.X, e.Y);&#xD;
            }&#xD;
        }&#xD;
&#xD;
        private void ImageButton_MouseUp(object sender, MouseEventArgs e)&#xD;
        {&#xD;
            if (capturedButton != null)&#xD;
            {&#xD;
                if (capturedButton.IsHit(e.X, e.Y))&#xD;
                    DoCommand(capturedButton.Cmd);&#xD;
                try&#xD;
                {&#xD;
                    capturedButton.IsSelected = false;&#xD;
                    capturedButton = null;&#xD;
                }&#xD;
                catch&#xD;
                {&#xD;
&#xD;
                }&#xD;
            }&#xD;
        }&#xD;
        /// &amp;lt;summary&amp;gt;&#xD;
        /// 执行指令&#xD;
        /// &amp;lt;/summary&amp;gt;&#xD;
        /// &amp;lt;param name="command"&amp;gt;&amp;lt;/param&amp;gt;&#xD;
        private void DoCommand(Command command)&#xD;
        {&#xD;
            switch (command)&#xD;
            {&#xD;
                case Command.cmd1://0&#xD;
                    // this.Close();&#xD;
                    break;&#xD;
                case Command.cmd2://1&#xD;
                    MessageBox.Show("cmd2");&#xD;
                    break;&#xD;
                case Command.cmd3://2&#xD;
                    this.Close();&#xD;
                    break;&#xD;
                case Command.cmd4://3&#xD;
                    {&#xD;
                        Line nl = new Line();&#xD;
                        nl.Show();&#xD;
&#xD;
                    }&#xD;
                    break;&#xD;
                default:&#xD;
                    break;&#xD;
            }&#xD;
        }&#xD;
&#xD;
    }&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IButton.cs 类&lt;/p&gt;&#xD;
&lt;pre &gt;//======================================================================&#xD;
//&#xD;
//        Copyright (C) 2008-2009 PCODE TEAM.  All rights reserved.&#xD;
//&#xD;
//       CLR Version: 2.0.50727.1433&#xD;
//        NameSpace: DZB        FileName: IButton.Cs&#xD;
//&#xD;
//        Created by Jy at  2009/9/10 22:07:34&#xD;
//        Email:jy@cjlu.edu.cn&#xD;
// &#xD;
//======================================================================&#xD;
&#xD;
&#xD;
using System;&#xD;
&#xD;
using System.Collections.Generic;&#xD;
using System.Text;&#xD;
using System.Windows.Forms;&#xD;
using System.Drawing;&#xD;
using System.Drawing.Imaging;&#xD;
&#xD;
namespace DZB {&#xD;
    public class IButton {&#xD;
        private Control MainForm;&#xD;
        private Font sFont = new Font(FontFamily.GenericSansSerif,16, FontStyle.Bold);&#xD;
        private Font sFont_ = new Font(FontFamily.GenericSansSerif, 16, FontStyle.Bold);&#xD;
        private bool IsSelectedValue;&#xD;
        private Command ButtonCommand;&#xD;
        private Rectangle selfRec;&#xD;
        private string _caption;&#xD;
        private float _cx, _cy;//画标题的位置&#xD;
        private Bitmap btnbg, btnbg_;&#xD;
        private string _CurrentPath;&#xD;
        Color transpColor = Color.FromArgb(255, 0, 255);//资源文件的透明色&#xD;
        ImageAttributes imageAttr;&#xD;
        Color _ncolor, _fcolor;&#xD;
        Graphics g, g_;&#xD;
        /// &amp;lt;summary&amp;gt;&#xD;
        /// 初始化&#xD;
        /// &amp;lt;/summary&amp;gt;&#xD;
        /// &amp;lt;param name="form"&amp;gt;容器名称&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="CurrentPath"&amp;gt;当前程序路径&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="x"&amp;gt;按钮位置X&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="y"&amp;gt;按钮位置Y&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="bgfilename"&amp;gt;按钮图片名称&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="caption"&amp;gt;标题&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="nColor"&amp;gt;正常颜色&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="fColor"&amp;gt;激活颜色&amp;lt;/param&amp;gt;&#xD;
        /// &amp;lt;param name="cmd"&amp;gt;指令&amp;lt;/param&amp;gt;&#xD;
        public IButton(Control form,string CurrentPath, int x, int y, string bgfilename,string caption,Color nColor,Color fColor, Command cmd) {&#xD;
            MainForm = form;&#xD;
            _ncolor = nColor;&#xD;
            _fcolor = fColor;&#xD;
            ButtonCommand = cmd;&#xD;
            _caption = caption;&#xD;
            _CurrentPath = CurrentPath;&#xD;
            string bg = CurrentPath + bgfilename;&#xD;
            string bg_ = CurrentPath +System.IO.Path.GetFileNameWithoutExtension(bg) + "_.bmp";&#xD;
            btnbg = new Bitmap(bg);&#xD;
            selfRec = new Rectangle(x, y, btnbg.Width,btnbg.Height);&#xD;
            g = Graphics.FromImage(btnbg);&#xD;
            _cx = (219 - g.MeasureString(_caption, sFont).Width) / 2;&#xD;
            _cy = (48 - g.MeasureString(_caption, sFont).Height) / 2;           &#xD;
            btnbg_= new Bitmap(bg_);&#xD;
            g_ = Graphics.FromImage(btnbg_);&#xD;
            imageAttr = new ImageAttributes();&#xD;
            imageAttr.SetColorKey(transpColor, transpColor);&#xD;
        }&#xD;
&#xD;
        public void Render(Graphics graphics) {&#xD;
             &#xD;
            if (IsSelectedValue) {//点下的状态&#xD;
                g_.DrawString(_caption, sFont_, new SolidBrush(_fcolor), _cx,_cy);&#xD;
                 graphics.DrawImage(btnbg_, selfRec, 0, 0, selfRec.Width, selfRec.Height, GraphicsUnit.Pixel, imageAttr);&#xD;
            }&#xD;
            else {&#xD;
                g.DrawString(_caption, sFont, new SolidBrush(_ncolor),_cx, _cy);&#xD;
                graphics.DrawImage(btnbg, selfRec, 0, 0, selfRec.Width, selfRec.Height, GraphicsUnit.Pixel, imageAttr);&#xD;
            }&#xD;
&#xD;
        }&#xD;
        private static Color GetTransparentColor(Image image) {&#xD;
            return ((Bitmap)image).GetPixel(image.Width - 1, image.Height - 1);&#xD;
        }&#xD;
        public bool IsHit(int x, int y) {&#xD;
            return (x &amp;gt;= selfRec.X &amp;amp;&amp;amp;&#xD;
                    x &amp;lt; selfRec.X +selfRec.Width &amp;amp;&amp;amp;&#xD;
                    y &amp;gt;= selfRec.Y &amp;amp;&amp;amp;&#xD;
                    y &amp;lt;selfRec.Y+selfRec.Height);&#xD;
        }&#xD;
&#xD;
&#xD;
        public bool IsSelected {&#xD;
            get {&#xD;
                return IsSelectedValue;&#xD;
            }&#xD;
            set {&#xD;
                Graphics graphics;&#xD;
&#xD;
                if (value != IsSelectedValue) {&#xD;
                    IsSelectedValue = value;&#xD;
&#xD;
                    // Redraw right away&#xD;
                    graphics = MainForm.CreateGraphics();&#xD;
                    this.Render(graphics);&#xD;
                    graphics.Dispose();&#xD;
&#xD;
                }&#xD;
            }&#xD;
        }&#xD;
&#xD;
        public Command Cmd {&#xD;
            get {&#xD;
                return (ButtonCommand);&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
}&#xD;
&#xD;
&lt;/pre&gt;&#xD;
&lt;p&gt;最终效果：&lt;/p&gt;&#xD;
&lt;p&gt;透明背景的按钮实现成功&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img width="400" src="http://pic002.cnblogs.com/img/pcode/201003/2010031715124872.png" height="299" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;总结：&lt;/p&gt;&#xD;
&lt;p&gt;此方案的优点：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;思路简单，实现过程没有特别复杂的技术环节&lt;/li&gt;&#xD;
&lt;li&gt;因是局部重画，即使在800*600这样的分辨率下也能达到不闪烁的效果&lt;/li&gt;&#xD;
&lt;li&gt;按钮可配置性高，更换资源文件即可实现对按钮及整体风格的改变&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;此方案的缺点：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;按钮图片与背景间不能实现ALPHA的渐透明&lt;/li&gt;&#xD;
&lt;li&gt;按钮的驱动虽然实现，但没有很OO。（微软也是这么写代码的，所以也不算大问题）&lt;/li&gt;&#xD;
&lt;li&gt;资源图片要按像素级处理透明色，有些麻烦。（项目组有美工的话还好做些）&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;以下再列几个我自己做的风格给大家参考&lt;/p&gt;&#xD;
&lt;p&gt;山水皮肤&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img width="392" src="http://pic002.cnblogs.com/img/pcode/201003/2010031715433584.png" height="291" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;冬奥皮肤&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img width="393" src="http://pic002.cnblogs.com/img/pcode/201003/2010031715435981.png" height="325" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;希望我的综合对大家有帮助。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pcode/aggbug/1687313.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pcode/archive/2010/03/18/1687313.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pcode/archive/2010/01/15/1648599.html</id><title type="text">反思一下，我为什么需要这些技术？</title><summary type="text">在经历了多个项目的开发后，某天开始，我发现自己很少回顾自已的做法是否正确，只一味追赶概念和进度。于是认真列了一个以下几项1、.net 2.0 2、nhibernate3、NVeloctiy4、SQL Server20005、MemCached6、FIFO以上这些是我做项目的4件主要技术内容1、选择.net2.0 是因为nhibernate现在还不能运行于.net 2.0以上的版本中，而我又特别需要...</summary><published>2010-01-15T06:52:00Z</published><updated>2010-01-15T06:52:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2010/01/15/1648599.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2010/01/15/1648599.html"/></entry><entry><id>http://www.cnblogs.com/pcode/archive/2009/12/14/1623686.html</id><title type="text">取页面内各种尽寸数据。备档</title><summary type="text">JS获取屏幕，浏览器，网页高度宽度网页可见区域宽：document.body.clientWidth 网页可见区域高：document.body.clientHeight 网页可见区域宽：document.body.offsetWidth (包括边线的宽) 网页可见区域高：document.body.offsetHeight (包括边线的宽) 网页正文全文宽：document.body.scrol...</summary><published>2009-12-14T06:16:00Z</published><updated>2009-12-14T06:16:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2009/12/14/1623686.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2009/12/14/1623686.html"/></entry><entry><id>http://www.cnblogs.com/pcode/archive/2009/03/19/1417214.html</id><title type="text">在.net中应用Newtonsoft.Json对Json字串进行反序列化</title><summary type="text">目标：以C#解析一串类似[{},{},{}]承载着数组数据的json字符串。将其反序列化为一个对象列表运行环境：NUnit2.4 C# .net2.0代码：[代码]反序列化后的对象列表为li对象。输出反序列化后li对象中包含的对象个数用于核对。Bingo!:)</summary><published>2009-03-19T15:00:00Z</published><updated>2009-03-19T15:00:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2009/03/19/1417214.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2009/03/19/1417214.html"/></entry><entry><id>http://www.cnblogs.com/pcode/archive/2008/11/29/1343589.html</id><title type="text">不足80行，一种清晰而又简单通用的分页算法，你有这么想过吗？C#版</title><summary type="text">分页，是WEB开发中面对的最常见的编程，实现方法多种多样。我也不来评论这些方法的好坏。但我总感觉它们太复杂，不够清晰不够简单。我十分欣赏PHP中一个Pager.php分页类的算法。http://www.phpclasses.org/browse/file/288.html，作者不详。也在不同的项目中把这种思想转换成不同语言的分页类，你不妨也试试。这种算法的思路是这样的：1、把分页后的数据抽象为一个...</summary><published>2008-11-28T16:06:00Z</published><updated>2008-11-28T16:06:00Z</updated><author><name>源姜</name><uri>http://www.cnblogs.com/pcode/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pcode/archive/2008/11/29/1343589.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pcode/archive/2008/11/29/1343589.html"/></entry></feed>
