<?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>Mousefire Walking On The Earth</title>
	<atom:link href="http://www.mousefire.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mousefire.net</link>
	<description>点点滴滴</description>
	<lastBuildDate>Wed, 01 Sep 2010 11:45:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>似乎很久没有写博客了。。</title>
		<link>http://www.mousefire.net/2010/08/21/%e4%bc%bc%e4%b9%8e%e5%be%88%e4%b9%85%e6%b2%a1%e6%9c%89%e5%86%99%e5%8d%9a%e5%ae%a2%e4%ba%86%e3%80%82%e3%80%82/</link>
		<comments>http://www.mousefire.net/2010/08/21/%e4%bc%bc%e4%b9%8e%e5%be%88%e4%b9%85%e6%b2%a1%e6%9c%89%e5%86%99%e5%8d%9a%e5%ae%a2%e4%ba%86%e3%80%82%e3%80%82/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 02:10:23 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[我的大学]]></category>
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/08/21/%e4%bc%bc%e4%b9%8e%e5%be%88%e4%b9%85%e6%b2%a1%e6%9c%89%e5%86%99%e5%8d%9a%e5%ae%a2%e4%ba%86%e3%80%82%e3%80%82/</guid>
		<description><![CDATA[　　去年开了一年的qq黄钻，可以用信纸什么的，可惜最后留下的还是寥寥几篇，一年的钱全用来跟腾讯买化肥了，自己汗一个。。想来想去，还是把自己弄的站点搞搞好吧。也许留下的文字少，只是因为不想说。。不想说。。。。哎。。。]]></description>
			<content:encoded><![CDATA[<p>　　去年开了一年的qq黄钻，可以用信纸什么的，可惜最后留下的还是寥寥几篇，一年的钱全用来跟腾讯买化肥了，自己汗一个。。想来想去，还是把自己弄的站点搞搞好吧。也许留下的文字少，只是因为不想说。。不想说。。。。哎。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/08/21/%e4%bc%bc%e4%b9%8e%e5%be%88%e4%b9%85%e6%b2%a1%e6%9c%89%e5%86%99%e5%8d%9a%e5%ae%a2%e4%ba%86%e3%80%82%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自己写日志太慢了，刚好有人把我想说的都说了，而且说得比我好。。</title>
		<link>http://www.mousefire.net/2010/03/25/%e8%87%aa%e5%b7%b1%e5%86%99%e6%97%a5%e5%bf%97%e5%a4%aa%e6%85%a2%e4%ba%86%ef%bc%8c%e5%88%9a%e5%a5%bd%e6%9c%89%e4%ba%ba%e6%8a%8a%e6%88%91%e6%83%b3%e8%af%b4%e7%9a%84%e9%83%bd%e8%af%b4%e4%ba%86%ef%bc%8c/</link>
		<comments>http://www.mousefire.net/2010/03/25/%e8%87%aa%e5%b7%b1%e5%86%99%e6%97%a5%e5%bf%97%e5%a4%aa%e6%85%a2%e4%ba%86%ef%bc%8c%e5%88%9a%e5%a5%bd%e6%9c%89%e4%ba%ba%e6%8a%8a%e6%88%91%e6%83%b3%e8%af%b4%e7%9a%84%e9%83%bd%e8%af%b4%e4%ba%86%ef%bc%8c/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 11:45:25 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[漫谈]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/03/25/%e8%87%aa%e5%b7%b1%e5%86%99%e6%97%a5%e5%bf%97%e5%a4%aa%e6%85%a2%e4%ba%86%ef%bc%8c%e5%88%9a%e5%a5%bd%e6%9c%89%e4%ba%ba%e6%8a%8a%e6%88%91%e6%83%b3%e8%af%b4%e7%9a%84%e9%83%bd%e8%af%b4%e4%ba%86%ef%bc%8c/</guid>
		<description><![CDATA[发信人: frankwen (贡格尔), 信区: XJTUenp 标  题: [转载]不得不转的一篇：谷歌走了，Google还在 发信站: 兵马俑BBS (Wed Mar 24 20:00:49 2010), 本站(bbs.xjtu.edu.cn) [转载]不得不转的一篇：谷歌走了，Google还在 喜欢的人请自己备份或者转载，随时都有被和谐的可能。杯具！ 不得不转的一篇：谷歌走了，Google还在。 向作者李同学致敬！ 原文链接：http://blog.renren.com/blog/222986084/453953174#nogo 如 果你认真看了留言，你会深深惊叹于，二十年的愚民教育，信息封锁，缔造出的是怎样 的一代奇葩。中国，你的未来在哪里呢？ 公元2006年4月12日，google用谷歌这一充满争议的名字，接受政府的要 求进行自我审核， 正式以.cn域名进入中国，公元2010年3月23日，谷歌退出中国。短短4年，便寿终正寝。 有人说，没有google，地球也照转，我过的也好好的；事实上，google没有中国，活的也很 好，自绝于世界，被抛弃的不是google而是中国。对于不知墙外世界为何物的人，即使是大 中华局域网，也足够圈养他们一辈子了；其实，对于他们之中大部 分人，一个腾讯公司就 能满足他们的全部需要：qq影音、qq输入法、qq游戏、qq视频、qq拍拍、qq浏览器、 qq&#8230;..。难怪有人戏称，中国要是 全民投票选总统，最后当选的一定是马化腾，因为只要 在qq弹出窗口中提示投一票送10枚q币、或者点亮一盏灯就行了。 列举腾讯公司这些copy得很成功的软件，想说的是腾讯不仅仅有QQ，同 样，google也远不 止一个搜索引擎，google还有数量上足以匹敌的腾讯公司的优秀服务，而两者更主要的区别 是，一个”从来只模仿，从未被抓住“， 一个“不断的创新，引领人类的科技“（此话一 点也不过分）；至于那个搞竞价排名、没事给CCAV送送钱的百度，从来都没法和Google相提 并论。 Picasa——腾讯相册模仿的原版，被和谐。 Gmail——在Gmail出现之前的互联网络，只存在2M大小的免费邮箱。 google文档——云服务的典范，我的资料和摘 抄都存在google文档里，随时可以编辑处理 ，被和谐。 google reader—— 一出现便成为全世界最受欢迎的博客在线阅读器。看了一个啼笑皆非人 人网转载的“如何用google reader下载科学文献“的帖子，其实那只是杀鸡用牛刀的小试 ，竟能让那么多人惊呼。 gtalk——美国的同志可以用它免费打电话。 google [...]]]></description>
			<content:encoded><![CDATA[<p>发信人: frankwen (贡格尔), 信区: XJTUenp<br />
标  题: [转载]不得不转的一篇：谷歌走了，Google还在<br />
发信站: 兵马俑BBS (Wed Mar 24 20:00:49 2010), 本站(bbs.xjtu.edu.cn)</p>
<p>[转载]不得不转的一篇：谷歌走了，Google还在<br />
喜欢的人请自己备份或者转载，随时都有被和谐的可能。杯具！<br />
不得不转的一篇：谷歌走了，Google还在。</p>
<p>向作者李同学致敬！</p>
<p>原文链接：<a href="http://blog.renren.com/blog/222986084/453953174#nogo">http://blog.renren.com/blog/222986084/453953174#nogo</a></p>
<p>如 果你认真看了留言，你会深深惊叹于，二十年的愚民教育，信息封锁，缔造出的是怎样<br />
的一代奇葩。中国，你的未来在哪里呢？</p>
<p>公元2006年4月12日，google用谷歌这一充满争议的名字，接受政府的要 求进行自我审核，<br />
正式以.cn域名进入中国，公元2010年3月23日，谷歌退出中国。短短4年，便寿终正寝。</p>
<p>有人说，没有google，地球也照转，我过的也好好的；事实上，google没有中国，活的也很<br />
好，自绝于世界，被抛弃的不是google而是中国。对于不知墙外世界为何物的人，即使是大<br />
中华局域网，也足够圈养他们一辈子了；其实，对于他们之中大部 分人，一个腾讯公司就<br />
能满足他们的全部需要：qq影音、qq输入法、qq游戏、qq视频、qq拍拍、qq浏览器、<br />
qq&#8230;..。难怪有人戏称，中国要是 全民投票选总统，最后当选的一定是马化腾，因为只要<br />
在qq弹出窗口中提示投一票送10枚q币、或者点亮一盏灯就行了。</p>
<p>列举腾讯公司这些copy得很成功的软件，想说的是腾讯不仅仅有QQ，同 样，google也远不<br />
止一个搜索引擎，google还有数量上足以匹敌的腾讯公司的优秀服务，而两者更主要的区别<br />
是，一个”从来只模仿，从未被抓住“， 一个“不断的创新，引领人类的科技“（此话一<br />
点也不过分）；至于那个搞竞价排名、没事给CCAV送送钱的百度，从来都没法和Google相提<br />
并论。</p>
<p>Picasa——腾讯相册模仿的原版，被和谐。</p>
<p>Gmail——在Gmail出现之前的互联网络，只存在2M大小的免费邮箱。</p>
<p>google文档——云服务的典范，我的资料和摘 抄都存在google文档里，随时可以编辑处理<br />
，被和谐。</p>
<p>google reader—— 一出现便成为全世界最受欢迎的博客在线阅读器。看了一个啼笑皆非人<br />
人网转载的“如何用google reader下载科学文献“的帖子，其实那只是杀鸡用牛刀的小试<br />
，竟能让那么多人惊呼。</p>
<p>gtalk——美国的同志可以用它免费打电话。</p>
<p>google earth——我已经很难形容当年谷歌地球出现时众人的惊呼以及坐在电脑桌前拼命的<br />
探寻地球每一个角落的情形了，难以忘记当从电脑上看到自己家屋顶时的兴 奋，其衍生带<br />
来的很多东西已经彻底融入和改变了人们的生活，比如我可以在家足不出户透过街景漫步巴<br />
黎的每一个角落，这是google一个改变世界的贡献。</p>
<p>google图书馆&#8212;又是一个受益全人类的项目，当然，除了天朝的”作协 “。很多大学课本<br />
，你都能从中找到摘录甚至全文。</p>
<p>Android&#8212; 开源的手机操作系统，正在迅速占领智能机的市场，山寨机的福音。</p>
<p>还有Chrome浏览器以及Chrome OS、google wave、AdWords、googleApp、Buzz、google翻译<br />
，实时搜索&#8230;此外世界最大的Blog和视频网站Youtube也属于 google公司。这还仅仅进是<br />
用户级别的免费应用，在企业应用、搜索、翻译算法，甚至是气候变迁、全球公共卫生、环<br />
保等议题google也有巨大的贡 献，所以，请不要单单用一个搜索引擎来理解google，没有<br />
google不知疲倦创新，互联网的世界不会是现在这个样子。百度，真的给google提鞋 都不<br />
配。</p>
<p>对于谷歌退出最关键的原因，关键词审查我 并不想多谈。只想问那些支持政府审查的同志<br />
：关键词审查依据的是我国哪一条法律？为什么地震死难儿童的list、奥运时的三鹿奶粉事<br />
件、06年就报道过的 山西的疫苗事件、地方上的污染、有毒食品原料&#8230;它们也属于关键词<br />
？某某人的一句话，就可以剥夺几亿人的接受信息的权力，当官员为了个人利益将这些直接<br />
危害你个人和下一代的真相隐瞒时，我实在想不出还有去支持这种让自己被屏蔽的理由，太<br />
多人在用屁股而不是脑袋思考。至于刚刚抵制完绿坝却又欢送谷歌离开的 人&#8212;&#8211;我只能称<br />
其为人格分裂。</p>
<p>有人说 google和美国在下很大的一盘棋，嗯，是的，他眼里到处是一盘棋，全世界都在下<br />
棋，他的国家天天在下棋，他的领导天天在下棋，他全家都在下棋，只有他 自己才是那个<br />
棋子儿。一个从小就认为世界到处是阴谋的 人，也必然没对自己的话负过责任，他可以把<br />
任何现象都简简单单的归结为阴谋而不需要拿出任何凭证，他可以用阴谋来解释他不了解的<br />
一切、并继而自以为已经了 解，他通过阴谋了解别人、了解世界。</p>
<p>”Don&#8217;t be evil“的google.com其实从来都在那儿，待在本来就该畅通无阻和我们零距离<br />
的地方；而谷歌不过是一个自我阉割后的丑陋产物，所以对于谷歌的退 出也不必多么悲哀<br />
。google.com.hk还在、google.com.tw还在&#8212;&#8212;如果你不能正常的访 问，难道也是<br />
google公司的问题吗？一个 google、wikipedia、Youtube、twitter、Facebook都不存在的<br />
国度，会成为一个世界的大国？<br />
&#8211;<br />
※ 来源:．兵马俑BBS <a href="http://bbs.xjtu.edu.cn">http://bbs.xjtu.edu.cn</a> [FROM: 202.117.52.60]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/03/25/%e8%87%aa%e5%b7%b1%e5%86%99%e6%97%a5%e5%bf%97%e5%a4%aa%e6%85%a2%e4%ba%86%ef%bc%8c%e5%88%9a%e5%a5%bd%e6%9c%89%e4%ba%ba%e6%8a%8a%e6%88%91%e6%83%b3%e8%af%b4%e7%9a%84%e9%83%bd%e8%af%b4%e4%ba%86%ef%bc%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>国足，你终于争了一口气！</title>
		<link>http://www.mousefire.net/2010/02/11/%e5%9b%bd%e8%b6%b3%ef%bc%8c%e4%bd%a0%e7%bb%88%e4%ba%8e%e4%ba%89%e4%ba%86%e4%b8%80%e5%8f%a3%e6%b0%94%ef%bc%81/</link>
		<comments>http://www.mousefire.net/2010/02/11/%e5%9b%bd%e8%b6%b3%ef%bc%8c%e4%bd%a0%e7%bb%88%e4%ba%8e%e4%ba%89%e4%ba%86%e4%b8%80%e5%8f%a3%e6%b0%94%ef%bc%81/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 14:53:26 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[我的大学]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/02/11/%e5%9b%bd%e8%b6%b3%ef%bc%8c%e4%bd%a0%e7%bb%88%e4%ba%8e%e4%ba%89%e4%ba%86%e4%b8%80%e5%8f%a3%e6%b0%94%ef%bc%81/</guid>
		<description><![CDATA[　　其实这篇日志明天就该写了，不过当时太激动，激动到只顾着看着大家是怎样庆祝这场胜利，都忘了还有一片属于自己的空间。 　　恐韩算是中国足球史中到昨天为止的一个永恒主题了，我们还记得这是三十二年的耻辱，人家美联社的记者就压根不记得中国队还有战胜过韩国队的时候。我的生命没有那么长，看球的历史更短，而在我短短的这段历史中，伴随着恐韩的，是中国男足那似乎永远提不上去的一口气！怯懦、莽撞、随意、散漫，这些东西在中国之队身上总显得阴魂不散，于是有了那一场场窝囊的失利、一张张愚蠢的红牌，而球迷们哭泣的脸，慢慢地变成了绝望的脸…愤怒的脸…慢慢的，这些脸，也慢慢的少了，模糊了，我也像很多的球迷一样，开始熟悉不看国足比赛的日子。 　　昨天是特别的，幸运的一天。也许是在先前和日本队之间的比赛中，国足取得的成绩让我感到满意，也许只是无聊，当我把电视打到江苏体育台的时候，我看到了一个奇迹：40min, 2:0。于是我知道我来晚了，而看了几分钟比赛之后，我就知道我不能像骑虎难下的CCTV一样，错过这一个华丽得过分的夜晚。 　　邓卓翔的进球只是一个彩蛋，真正让我感动的是，那些曾经在国足身上萦绕不去的阴魂似乎被冰雨洗去，今年的国足，真如凤凰涅槃。我们没有球星，有的是十一条凝为一体的心；我们没有慵懒，有的是抗日救国的先烈遗风。真的没有见过这样完美的国足。 　　真的不知道该如何结束这篇日志，只是觉得这一晚绝对值得在我的生命中留下一点印记。]]></description>
			<content:encoded><![CDATA[<p>　　其实这篇日志明天就该写了，不过当时太激动，激动到只顾着看着大家是怎样庆祝这场胜利，都忘了还有一片属于自己的空间。</p>
<p>　　恐韩算是中国足球史中到昨天为止的一个永恒主题了，我们还记得这是三十二年的耻辱，人家美联社的记者就压根不记得中国队还有战胜过韩国队的时候。我的生命没有那么长，看球的历史更短，而在我短短的这段历史中，伴随着恐韩的，是中国男足那似乎永远提不上去的一口气！怯懦、莽撞、随意、散漫，这些东西在中国之队身上总显得阴魂不散，于是有了那一场场窝囊的失利、一张张愚蠢的红牌，而球迷们哭泣的脸，慢慢地变成了绝望的脸…愤怒的脸…慢慢的，这些脸，也慢慢的少了，模糊了，我也像很多的球迷一样，开始熟悉不看国足比赛的日子。</p>
<p>　　昨天是特别的，幸运的一天。也许是在先前和日本队之间的比赛中，国足取得的成绩让我感到满意，也许只是无聊，当我把电视打到江苏体育台的时候，我看到了一个奇迹：40min, 2:0。于是我知道我来晚了，而看了几分钟比赛之后，我就知道我不能像骑虎难下的CCTV一样，错过这一个华丽得过分的夜晚。</p>
<p>　　邓卓翔的进球只是一个彩蛋，真正让我感动的是，那些曾经在国足身上萦绕不去的阴魂似乎被冰雨洗去，今年的国足，真如凤凰涅槃。我们没有球星，有的是十一条凝为一体的心；我们没有慵懒，有的是抗日救国的先烈遗风。真的没有见过这样完美的国足。</p>
<p>　　真的不知道该如何结束这篇日志，只是觉得这一晚绝对值得在我的生命中留下一点印记。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/02/11/%e5%9b%bd%e8%b6%b3%ef%bc%8c%e4%bd%a0%e7%bb%88%e4%ba%8e%e4%ba%89%e4%ba%86%e4%b8%80%e5%8f%a3%e6%b0%94%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt学习笔记_Chapter1_4使用参考文档</title>
		<link>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_4%e4%bd%bf%e7%94%a8%e5%8f%82%e8%80%83%e6%96%87%e6%a1%a3/</link>
		<comments>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_4%e4%bd%bf%e7%94%a8%e5%8f%82%e8%80%83%e6%96%87%e6%a1%a3/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:54:03 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[Qt学习笔记]]></category>
		<category><![CDATA[Qt assistant]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_4%e4%bd%bf%e7%94%a8%e5%8f%82%e8%80%83%e6%96%87%e6%a1%a3/</guid>
		<description><![CDATA[　　Qt的文档确实做得非常不错，虽然是英文的，不过很有条理，还有不少例子，很容易上手。再像学MFC一下，看一下到目前为止接触到类的继承树。]]></description>
			<content:encoded><![CDATA[<p>　　Qt的文档确实做得非常不错，虽然是英文的，不过很有条理，还有不少例子，很容易上手。再像学MFC一下，看一下到目前为止接触到类的继承树。</p>
<p><a href="http://www.mousefire.net/wp-content/uploads/2010/01/image6.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.mousefire.net/wp-content/uploads/2010/01/image_thumb6.png" width="473" height="194"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_4%e4%bd%bf%e7%94%a8%e5%8f%82%e8%80%83%e6%96%87%e6%a1%a3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt学习笔记_Chapter1_3窗口部件的布局</title>
		<link>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_3%e7%aa%97%e5%8f%a3%e9%83%a8%e4%bb%b6%e7%9a%84%e5%b8%83%e5%b1%80/</link>
		<comments>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_3%e7%aa%97%e5%8f%a3%e9%83%a8%e4%bb%b6%e7%9a%84%e5%b8%83%e5%b1%80/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:41:03 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[Qt学习笔记]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[布局]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_3%e7%aa%97%e5%8f%a3%e9%83%a8%e4%bb%b6%e7%9a%84%e5%b8%83%e5%b1%80/</guid>
		<description><![CDATA[　　Windows7下的程序运行效果图： 　　这一节主要讲了两点：（１）如何用布局（Layout）来管理窗口中窗口部件的几何形状；（２）如何利用信号和槽来同步窗口部件。 　　这个应用程序用了三个窗口部件：一个QSpinBox（微调框）、一个QSlider（滑块）和一个QWidget。其中QWidget是这个应用程序的主窗口，也是QSpinBox和QSlider的父对象，QWidget自己没有父对象。QWidget的构造函数以及它的所有子类都会带一个参数QWidget*，以用来说明谁是它们的父窗口部件。 #include &#60;QApplication&#62; #include &#60;QHBoxLayout&#62; #include &#60;QSlider&#62; #include &#60;QSpinBox&#62; int main(int argc,char *argv[]) {     QApplication app(argc,argv);     QWidget *windows=new QWidget;     windows-&#62;setWindowTitle(&#34;Enter Your Age&#34;);     QSpinBox *spinBox=new QSpinBox;     QSlider *slider=new QSlider(Qt::Horizontal);     spinBox-&#62;setRange(0,130);     slider-&#62;setRange(0,130);     QObject::connect(spinBox,SIGNAL(valueChanged(int)),         slider,SLOT(setValue(int)));     QObject::connect(slider,SIGNAL(valueChanged(int)),         spinBox,SLOT(setValue(int)));     spinBox-&#62;setValue(35);     QHBoxLayout *layout=new QHBoxLayout;     layout-&#62;addWidget(spinBox);     layout-&#62;addWidget(slider);     windows-&#62;setLayout(layout);     windows-&#62;show();     return app.exec(); } Line8,9：创建了Widget对象，使用setWindowTitle()函数来设置显示在窗口标题栏上的文字。 Line10,11：创建了一个QSpinBox和一个QSlider，并分别在第12行和第13行设置了它们的有效范围。本应将这个窗口传递给QSpinBox和QSlider的构造函数，以说明这两个窗口部件的父对象都是这个窗口，但在这里没有这个必要，因为布局系统将会自行得出这一结果并自动把该窗口设置为微调框和滑块的父对象。 Line14-17：调用了两次QObject::connect()，来确保能够让微调框和滑块同步，一旦有一个窗口部件的值发生了改变那么就会发射它的valueChanged(int)信号，而另一个窗口部件就会用这个新值调用它的setValue(int)值。 Line18：将微调框的值设置为35，此时QSpinBox会发射valueChanged(int)信号，其中，int参数的值为35，触发QSlider的setValue(int)槽，避免无限循环的发生，流程如下图所示： Line19-22：使用了一个布局管理器对微调框和滑块进行布局处理。布局管理器(layout manager)是一个能够对其所负责窗口部件的尺寸大小的位置进行设置的对象。Qt有三个主要的布局管理器类：(1)QHBoxLayout：在水平方向上排列窗口部件，从左到右；(2)QVBoxLayout：在竖起方向上排列窗口部件，由上到下；(3)QGridLayout，把各个窗口部件排列在一个网格中。第22行的QWidget::setLayout()函数调用会在窗口上安装该布局管理器。QSpinBox和QSlider会自动“重定义父对象”，成为这个安装了布局的窗口部件的子对象。因此当创建一个需要放进某个布局中的窗口部件时，就没有必要为其显式的指定父对象了。]]></description>
			<content:encoded><![CDATA[<p>　　Windows7下的程序运行效果图：</p>
<p><a href="http://www.mousefire.net/wp-content/uploads/2010/01/image2.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.mousefire.net/wp-content/uploads/2010/01/image_thumb2.png" width="231" height="80"></a> 　　这一节主要讲了两点：（１）如何用布局（Layout）来管理窗口中窗口部件的几何形状；（２）如何利用信号和槽来同步窗口部件。</p>
<p>　　这个应用程序用了三个窗口部件：一个QSpinBox（微调框）、一个QSlider（滑块）和一个QWidget。其中QWidget是这个应用程序的主窗口，也是QSpinBox和QSlider的父对象，QWidget自己没有父对象。QWidget的构造函数以及它的所有子类都会带一个参数QWidget*，以用来说明谁是它们的父窗口部件。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:177020f3-0a9a-4daf-a005-3875b5e7e9ec" class="wlWriterEditableSmartContent">
<div class="le-pavsc-container">
<div style="background: #fff; overflow: auto">
<ol style="background: #c2db8a; margin: 0; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QApplication&gt;</span></li>
<li class="even"><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QHBoxLayout&gt;</span></li>
<li><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QSlider&gt;</span></li>
<li class="even"><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QSpinBox&gt;</span></li>
<li><span style="color:#0000ff">int</span><span style="color:#004000"> </span><span style="color:#010001">main</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000"> </span><span style="color:#010001">argc</span><span style="color:#004000">,</span><span style="color:#0000ff">char</span><span style="color:#004000"> *</span><span style="color:#010001">argv</span><span style="color:#004000">[])</span></li>
<li class="even"><span style="color:#004000">{</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">QApplication</span><span style="color:#004000"> </span><span style="color:#010001">app</span><span style="color:#004000">(</span><span style="color:#010001">argc</span><span style="color:#004000">,</span><span style="color:#010001">argv</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">QWidget</span><span style="color:#004000"> *</span><span style="color:#010001">windows</span><span style="color:#004000">=</span><span style="color:#0000ff">new</span><span style="color:#004000"> </span><span style="color:#010001">QWidget</span><span style="color:#004000">;</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">windows</span><span style="color:#004000">-&gt;</span><span style="color:#010001">setWindowTitle</span><span style="color:#004000">(</span><span style="color:#a31515">&quot;Enter Your Age&quot;</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">QSpinBox</span><span style="color:#004000"> *</span><span style="color:#010001">spinBox</span><span style="color:#004000">=</span><span style="color:#0000ff">new</span><span style="color:#004000"> </span><span style="color:#010001">QSpinBox</span><span style="color:#004000">;</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">QSlider</span><span style="color:#004000"> *</span><span style="color:#010001">slider</span><span style="color:#004000">=</span><span style="color:#0000ff">new</span><span style="color:#004000"> </span><span style="color:#010001">QSlider</span><span style="color:#004000">(</span><span style="color:#010001">Qt</span><span style="color:#004000">::</span><span style="color:#010001">Horizontal</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">spinBox</span><span style="color:#004000">-&gt;</span><span style="color:#010001">setRange</span><span style="color:#004000">(0,130);</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">slider</span><span style="color:#004000">-&gt;</span><span style="color:#010001">setRange</span><span style="color:#004000">(0,130);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">QObject</span><span style="color:#004000">::</span><span style="color:#010001">connect</span><span style="color:#004000">(</span><span style="color:#010001">spinBox</span><span style="color:#004000">,</span><span style="color:#0000ff">SIGNAL</span><span style="color:#004000">(</span><span style="color:#010001">valueChanged</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000">)),</span></li>
<li>        <span style="color:#004000"></span><span style="color:#010001">slider</span><span style="color:#004000">,</span><span style="color:#0000ff">SLOT</span><span style="color:#004000">(</span><span style="color:#010001">setValue</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000">)));</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">QObject</span><span style="color:#004000">::</span><span style="color:#010001">connect</span><span style="color:#004000">(</span><span style="color:#010001">slider</span><span style="color:#004000">,</span><span style="color:#0000ff">SIGNAL</span><span style="color:#004000">(</span><span style="color:#010001">valueChanged</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000">)),</span></li>
<li>        <span style="color:#004000"></span><span style="color:#010001">spinBox</span><span style="color:#004000">,</span><span style="color:#0000ff">SLOT</span><span style="color:#004000">(</span><span style="color:#010001">setValue</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000">)));</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">spinBox</span><span style="color:#004000">-&gt;</span><span style="color:#010001">setValue</span><span style="color:#004000">(35);</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">QHBoxLayout</span><span style="color:#004000"> *</span><span style="color:#010001">layout</span><span style="color:#004000">=</span><span style="color:#0000ff">new</span><span style="color:#004000"> </span><span style="color:#010001">QHBoxLayout</span><span style="color:#004000">;</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">layout</span><span style="color:#004000">-&gt;</span><span style="color:#010001">addWidget</span><span style="color:#004000">(</span><span style="color:#010001">spinBox</span><span style="color:#004000">);</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">layout</span><span style="color:#004000">-&gt;</span><span style="color:#010001">addWidget</span><span style="color:#004000">(</span><span style="color:#010001">slider</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">windows</span><span style="color:#004000">-&gt;</span><span style="color:#010001">setLayout</span><span style="color:#004000">(</span><span style="color:#010001">layout</span><span style="color:#004000">);</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">windows</span><span style="color:#004000">-&gt;</span><span style="color:#010001">show</span><span style="color:#004000">();</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#0000ff">return</span><span style="color:#004000"> </span><span style="color:#010001">app</span><span style="color:#004000">.</span><span style="color:#010001">exec</span><span style="color:#004000">();</span></li>
<li><span style="color:#004000">}</span></li>
</ol></div>
</p></div>
</p></div>
</p>
<p><strong>Line8,9：</strong>创建了Widget对象，使用setWindowTitle()函数来设置显示在窗口标题栏上的文字。</p>
<p><strong>Line10,11：</strong>创建了一个QSpinBox和一个QSlider，并分别在第12行和第13行设置了它们的有效范围。本应将这个窗口传递给QSpinBox和QSlider的构造函数，以说明这两个窗口部件的父对象都是这个窗口，但在这里没有这个必要，因为布局系统将会自行得出这一结果并自动把该窗口设置为微调框和滑块的父对象。</p>
<p><strong>Line14-17：</strong>调用了两次QObject::connect()，来确保能够让微调框和滑块同步，一旦有一个窗口部件的值发生了改变那么就会发射它的valueChanged(int)信号，而另一个窗口部件就会用这个新值调用它的setValue(int)值。</p>
<p><strong>Line18：</strong>将微调框的值设置为35，此时QSpinBox会发射valueChanged(int)信号，其中，int参数的值为35，触发QSlider的setValue(int)槽，避免无限循环的发生，流程如下图所示：</p>
<p><a href="http://www.mousefire.net/wp-content/uploads/2010/01/image3.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.mousefire.net/wp-content/uploads/2010/01/image_thumb3.png" width="301" height="320"></a> </p>
<p><strong>Line19-22：</strong>使用了一个<u>布局管理器</u>对微调框和滑块进行布局处理。布局管理器(layout manager)是一个能够对其所负责窗口部件的尺寸大小的位置进行设置的对象。Qt有三个主要的布局管理器类：(1)QHBoxLayout：在水平方向上排列窗口部件，从左到右；(2)QVBoxLayout：在竖起方向上排列窗口部件，由上到下；(3)QGridLayout，把各个窗口部件排列在一个网格中。第22行的QWidget::setLayout()函数调用会在窗口上安装该布局管理器。QSpinBox和QSlider会自动“重定义父对象”，成为这个安装了布局的窗口部件的子对象。因此当创建一个需要放进某个布局中的窗口部件时，就没有必要为其显式的指定父对象了。</p>
<p><a href="http://www.mousefire.net/wp-content/uploads/2010/01/image4.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.mousefire.net/wp-content/uploads/2010/01/image_thumb4.png" width="448" height="108"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_3%e7%aa%97%e5%8f%a3%e9%83%a8%e4%bb%b6%e7%9a%84%e5%b8%83%e5%b1%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt学习笔记_Chapter1_2建立连接</title>
		<link>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_2%e5%bb%ba%e7%ab%8b%e8%bf%9e%e6%8e%a5/</link>
		<comments>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_2%e5%bb%ba%e7%ab%8b%e8%bf%9e%e6%8e%a5/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:01:47 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[Qt学习笔记]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[信号和槽]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_2%e5%bb%ba%e7%ab%8b%e8%bf%9e%e6%8e%a5/</guid>
		<description><![CDATA[　　Windows7下程序运行效果图： 　　 　　还记得MFC中，消息循环系统是每一个初学者都要费不少心思学习的东西，Qt中采用了一种完全不同的方式：信号和槽。还是从代码开始： #include &#60;QApplication&#62; #include &#60;QPushButton&#62; int main(int argc,char *argv[]) {     QApplication app(argc,argv);     QPushButton *button=new QPushButton(&#34;Quit&#34;);     QObject::connect(button,SIGNAL(clicked()),         &#38;app,SLOT(quit()));     button-&#62;show();     return app.exec(); } 　　这里使用了QPushButton作为应用程序的主窗口部件。 Line7,8：Qt的窗口部件通过发射信号(signal)来表明一个用户动作已经发生了或者是一个状态已经改变了。例如，当用户单击QPushButton时，该按钮就会发射一个clicked()信号。信号可以与函数（在这里称为槽，slot）相连接，以便在发射信号时，槽可以得到自动执行。这里把按钮的clicked信号和QApplication对象的quit()槽连接起来。宏SIGNAL()和SLOT()是Qt语法中的一部分。 BTW:QObject这个类是QT对象模型的核心，绝大部分的QT类都是从这个类继承而来，这个模型的中心特征就是一个叫做信号和槽的机制来实现对象间的通讯。所有的widget都是QT object，因为它们继承自QWidget，而Qwidget正是继承自QObject]]></description>
			<content:encoded><![CDATA[<p>　　Windows7下程序运行效果图：</p>
<p><a href="http://www.mousefire.net/wp-content/uploads/2010/01/image1.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.mousefire.net/wp-content/uploads/2010/01/image_thumb1.png" width="136" height="65"></a> 　　</p>
<p>　　还记得MFC中，消息循环系统是每一个初学者都要费不少心思学习的东西，Qt中采用了一种完全不同的方式：信号和槽。还是从代码开始：</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:73c4a229-4f04-467b-a0c4-7a85ba1fb029" class="wlWriterEditableSmartContent">
<div class="le-pavsc-container">
<div style="background: #fff; overflow: auto">
<ol style="background: #c2db8a; margin: 0; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QApplication&gt;</span></li>
<li class="even"><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QPushButton&gt;</span></li>
<li><span style="color:#0000ff">int</span><span style="color:#004000"> </span><span style="color:#010001">main</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000"> </span><span style="color:#010001">argc</span><span style="color:#004000">,</span><span style="color:#0000ff">char</span><span style="color:#004000"> *</span><span style="color:#010001">argv</span><span style="color:#004000">[])</span></li>
<li class="even"><span style="color:#004000">{</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">QApplication</span><span style="color:#004000"> </span><span style="color:#010001">app</span><span style="color:#004000">(</span><span style="color:#010001">argc</span><span style="color:#004000">,</span><span style="color:#010001">argv</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">QPushButton</span><span style="color:#004000"> *</span><span style="color:#010001">button</span><span style="color:#004000">=</span><span style="color:#0000ff">new</span><span style="color:#004000"> </span><span style="color:#010001">QPushButton</span><span style="color:#004000">(</span><span style="color:#a31515">&quot;Quit&quot;</span><span style="color:#004000">);</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">QObject</span><span style="color:#004000">::</span><span style="color:#010001">connect</span><span style="color:#004000">(</span><span style="color:#010001">button</span><span style="color:#004000">,</span><span style="color:#0000ff">SIGNAL</span><span style="color:#004000">(</span><span style="color:#010001">clicked</span><span style="color:#004000">()),</span></li>
<li class="even">        <span style="color:#004000">&amp;</span><span style="color:#010001">app</span><span style="color:#004000">,</span><span style="color:#0000ff">SLOT</span><span style="color:#004000">(</span><span style="color:#010001">quit</span><span style="color:#004000">()));</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">button</span><span style="color:#004000">-&gt;</span><span style="color:#010001">show</span><span style="color:#004000">();</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#0000ff">return</span><span style="color:#004000"> </span><span style="color:#010001">app</span><span style="color:#004000">.</span><span style="color:#010001">exec</span><span style="color:#004000">();</span></li>
<li><span style="color:#004000">}</span></li>
</ol></div>
</p></div>
</p></div>
</p>
<p>　　这里使用了QPushButton作为应用程序的主窗口部件。</p>
<p><strong>Line7,8：</strong>Qt的窗口部件通过发射信号(signal)来表明<u>一个用户动作已经发生了</u>或者是<u>一个状态已经改变了</u>。例如，当用户单击QPushButton时，该按钮就会发射一个clicked()信号。信号可以与函数（在这里称为槽，slot）相连接，以便在发射信号时，槽可以得到自动执行。这里把按钮的clicked信号和QApplication对象的quit()槽连接起来。宏SIGNAL()和SLOT()是Qt语法中的一部分。</p>
<p>BTW:QObject这个类是QT对象模型的核心，绝大部分的QT类都是从这个类继承而来，这个模型的中心特征就是一个叫做信号和槽的机制来实现对象间的通讯。所有的widget都是QT object，因为它们继承自QWidget，而Qwidget正是继承自QObject</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/01/08/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_2%e5%bb%ba%e7%ab%8b%e8%bf%9e%e6%8e%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt学习笔记_Chapter1_1HelloQt</title>
		<link>http://www.mousefire.net/2010/01/06/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_helloqt/</link>
		<comments>http://www.mousefire.net/2010/01/06/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_helloqt/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 14:02:27 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[Qt学习笔记]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2010/01/06/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_helloqt/</guid>
		<description><![CDATA[　　Windows7下程序运行效果图： &#160; 　　学习的每一步总是HelloWorld，Qt4.6直接推出了VS2008的Binary包，大大方便了我的学习，现在可以像写一般的MFC程序一样在VS集成环境中编写Qt程序了，Qt中的HelloWorld程序如下： #include &#60;QApplication&#62; #include &#60;QLabel&#62; int main(int argc,char *argv[]) {     QApplication app(argc,argv);     QLabel *label=new QLabel(&#34;&#60;h2&#62;&#60;i&#62;Hello&#60;/i&#62; &#34;         &#34;&#60;font color=red&#62;Qt!&#60;/font&#62;&#60;/h2&#62;&#34;);     label-&#62;show();     return app.exec(); } Line1,2：对于每个Qt类，都有一个与该类同名（且大写）的头文件，在这个头文件中包括了对该类的定义。 Line5：创建了一个Qapplication对象，用来管理整个应用程序所用到的资源。Qt支持它自己的一些命令行参数，所以这里同样有argc,argv作为参数。 Line6：创建了一个QLabel Widget，这里的Widget相当于VC中的控件，Qt十分灵活，任意窗口部件(Widget)都可以作为窗口，这里就使用了一个Qlabel作为窗口。另外可以看到，通过使用一些简单的HTML样式格式，可以轻松地把Qt应用程序的用户接口变得更为丰富多彩。 Line8：使QLabel可见，默认隐藏是为了便于我们先进行设置然后再显示它们，从而避免了窗口部件的闪烁现象。 Line9：将应用程序的控制权传递给Qt。此时，程序会进入事件循环状态，这是一种等待模式，程序会等候用户的动作，例如鼠标单击和按键等操作。 BTW：在这个程序中没有过多关注在main()函数末尾处对QLabel对象的delete操作调用。在如此短小的程序内，这样一点内存泄漏(memory leak)问题无关大局，因为在程序结束时，这部分内存是可以由操作系统重新回收的。]]></description>
			<content:encoded><![CDATA[<p>　　Windows7下程序运行效果图：</p>
<p><a href="http://www.mousefire.net/wp-content/uploads/2010/01/image5.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.mousefire.net/wp-content/uploads/2010/01/image_thumb5.png" width="132" height="59"></a>&nbsp;</p>
<p>　　学习的每一步总是HelloWorld，Qt4.6直接推出了VS2008的Binary包，大大方便了我的学习，现在可以像写一般的MFC程序一样在VS集成环境中编写Qt程序了，Qt中的HelloWorld程序如下：</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:96baf6ce-172d-42a6-a322-89f577155c63" class="wlWriterEditableSmartContent">
<div class="le-pavsc-container">
<div style="background: #fff; overflow: auto">
<ol style="background: #c2db8a; margin: 0; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QApplication&gt;</span></li>
<li class="even"><span style="color:#0000ff">#include</span><span style="color:#004000"> </span><span style="color:#a31515">&lt;QLabel&gt;</span></li>
<li><span style="color:#0000ff">int</span><span style="color:#004000"> </span><span style="color:#010001">main</span><span style="color:#004000">(</span><span style="color:#0000ff">int</span><span style="color:#004000"> </span><span style="color:#010001">argc</span><span style="color:#004000">,</span><span style="color:#0000ff">char</span><span style="color:#004000"> *</span><span style="color:#010001">argv</span><span style="color:#004000">[])</span></li>
<li class="even"><span style="color:#004000">{</span></li>
<li>    <span style="color:#004000"></span><span style="color:#010001">QApplication</span><span style="color:#004000"> </span><span style="color:#010001">app</span><span style="color:#004000">(</span><span style="color:#010001">argc</span><span style="color:#004000">,</span><span style="color:#010001">argv</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">QLabel</span><span style="color:#004000"> *</span><span style="color:#010001">label</span><span style="color:#004000">=</span><span style="color:#0000ff">new</span><span style="color:#004000"> </span><span style="color:#010001">QLabel</span><span style="color:#004000">(</span><span style="color:#a31515">&quot;&lt;h2&gt;&lt;i&gt;Hello&lt;/i&gt; &quot;</span></li>
<li>        <span style="color:#a31515"></span><span style="color:#a31515">&quot;&lt;font color=red&gt;Qt!&lt;/font&gt;&lt;/h2&gt;&quot;</span><span style="color:#004000">);</span></li>
<li class="even">    <span style="color:#004000"></span><span style="color:#010001">label</span><span style="color:#004000">-&gt;</span><span style="color:#010001">show</span><span style="color:#004000">();</span></li>
<li>    <span style="color:#004000"></span><span style="color:#0000ff">return</span><span style="color:#004000"> </span><span style="color:#010001">app</span><span style="color:#004000">.</span><span style="color:#010001">exec</span><span style="color:#004000">();</span></li>
<li class="even"><span style="color:#004000">}</span></li>
</ol></div>
</p></div>
</p></div>
<p><strong>Line1,2：</strong>对于每个Qt类，都有一个与该类同名（且大写）的头文件，在这个头文件中包括了对该类的定义。</p>
<p><strong>Line5：</strong>创建了一个Qapplication对象，用来管理整个应用程序所用到的资源。Qt支持它自己的一些命令行参数，所以这里同样有argc,argv作为参数。</p>
<p><strong>Line6：</strong>创建了一个QLabel Widget，这里的Widget相当于VC中的控件，Qt十分灵活，任意窗口部件(Widget)都可以作为窗口，这里就使用了一个Qlabel作为窗口。另外可以看到，通过使用一些简单的HTML样式格式，可以轻松地把Qt应用程序的用户接口变得更为丰富多彩。</p>
<p><strong>Line8：</strong>使QLabel可见，默认隐藏是为了便于我们先进行设置然后再显示它们，从而避免了窗口部件的闪烁现象。</p>
<p><strong>Line9：</strong>将应用程序的控制权传递给Qt。此时，程序会进入事件循环状态，这是一种等待模式，程序会等候用户的动作，例如鼠标单击和按键等操作。</p>
<p>BTW：在这个程序中没有过多关注在main()函数末尾处对QLabel对象的delete操作调用。在如此短小的程序内，这样一点内存泄漏(memory leak)问题无关大局，因为在程序结束时，这部分内存是可以由操作系统重新回收的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2010/01/06/qt%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0_chapter1_helloqt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++Primer学习笔记2_构造函数初始化式</title>
		<link>http://www.mousefire.net/2009/12/25/cprimer%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b02_%e6%9e%84%e9%80%a0%e5%87%bd%e6%95%b0%e5%88%9d%e5%a7%8b%e5%8c%96%e5%bc%8f/</link>
		<comments>http://www.mousefire.net/2009/12/25/cprimer%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b02_%e6%9e%84%e9%80%a0%e5%87%bd%e6%95%b0%e5%88%9d%e5%a7%8b%e5%8c%96%e5%bc%8f/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 11:30:13 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[C++Primer学习笔记]]></category>
		<category><![CDATA[构造函数]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2009/12/25/cprimer%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b02_%e6%9e%84%e9%80%a0%e5%87%bd%e6%95%b0%e5%88%9d%e5%a7%8b%e5%8c%96%e5%bc%8f/</guid>
		<description><![CDATA[　　正如Lippman所说，构造函数初始化列表是许多相当有经验的C++程序员都没有掌握的一个特性。虽然在学习MFC的时候，经常看到这种形式的初始化，但是总觉得格式不漂亮，也没有深究为什么Microsoft的程序员们喜欢这样做，直到今天。且看下面这两段代码： Sales_item(const std::string &#38;book=&#34;&#34;):isbn(book),units_sold(0),revenue(0.0){} Sales_item(const std::string &#38;book=&#34;&#34;) {     isbn=book;     units_sold=0;     revenue=0.0; } 　　第一段代码使用了初始化式，执行构造函数时，直接执行初始化，而第二段代码中，虽然没有显式的初始化式，但是在执行构造函数之前，要初始化isbn成员，由默认的string构造函数执行，在执行构造函数的函数体时，isbn成员已经有值了。这两个构造函数虽然执行结果相同，但是不使用初始化式等于在程序执行时多了一步。这种效率上的损失还不是最糟糕的，在以下情况下，甚至必须要使用初始化列表进行初始化： １．成员是没有默认构造函数的类 ２．成员是const对象 ３．成员是引用类型的对象 　　要注意的另外一点是：成员初始化的次序并不是它们出现在初始化列表中的次序，而是定义成员的次序．]]></description>
			<content:encoded><![CDATA[<p>　　正如Lippman所说，构造函数初始化列表是许多相当有经验的C++程序员都没有掌握的一个特性。虽然在学习MFC的时候，经常看到这种形式的初始化，但是总觉得格式不漂亮，也没有深究为什么Microsoft的程序员们喜欢这样做，直到今天。且看下面这两段代码：</p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<div class="le-pavsc-container">
<div style="background: #fff;overflow: auto">
<ol style="background: #c2db8a;margin: 0;padding: 0 0 0 5px">
<li><span style="color:#010001">Sales_item</span><span style="color:#9b4e00">(</span><span style="color:#0000ff">const</span><span style="color:#9b4e00"> </span><span style="color:#010001">std</span><span style="color:#9b4e00">::</span><span style="color:#010001">string</span><span style="color:#9b4e00"> &amp;</span><span style="color:#010001">book</span><span style="color:#9b4e00">=</span><span style="color:#a31515">&quot;&quot;</span><span style="color:#9b4e00">):</span><span style="color:#010001">isbn</span><span style="color:#9b4e00">(</span><span style="color:#010001">book</span><span style="color:#9b4e00">),</span><span style="color:#010001">units_sold</span><span style="color:#9b4e00">(0),</span><span style="color:#010001">revenue</span><span style="color:#9b4e00">(0.0){}</span></li>
<li class="even"><span style="color:#9b4e00"></span></li>
<li><span style="color:#9b4e00"></span><span style="color:#010001">Sales_item</span><span style="color:#9b4e00">(</span><span style="color:#0000ff">const</span><span style="color:#9b4e00"> </span><span style="color:#010001">std</span><span style="color:#9b4e00">::</span><span style="color:#010001">string</span><span style="color:#9b4e00"> &amp;</span><span style="color:#010001">book</span><span style="color:#9b4e00">=</span><span style="color:#a31515">&quot;&quot;</span><span style="color:#9b4e00">)</span></li>
<li class="even"><span style="color:#9b4e00">{</span></li>
<li>    <span style="color:#9b4e00"></span><span style="color:#010001">isbn</span><span style="color:#9b4e00">=</span><span style="color:#010001">book</span><span style="color:#9b4e00">;</span></li>
<li class="even">    <span style="color:#9b4e00"></span><span style="color:#010001">units_sold</span><span style="color:#9b4e00">=0;</span></li>
<li>    <span style="color:#9b4e00"></span><span style="color:#010001">revenue</span><span style="color:#9b4e00">=0.0;</span></li>
<li class="even"><span style="color:#9b4e00">}</span></li>
</ol></div>
</p></div>
</p></div>
</p>
<p>　　第一段代码使用了初始化式，执行构造函数时，直接执行初始化，而第二段代码中，虽然没有显式的初始化式，但是在执行构造函数之前，要初始化isbn成员，由默认的string构造函数执行，在执行构造函数的函数体时，isbn成员已经有值了。这两个构造函数虽然执行结果相同，但是不使用初始化式等于在程序执行时多了一步。这种效率上的损失还不是最糟糕的，在以下情况下，甚至必须要使用初始化列表进行初始化：</p>
<p><font color="#804000"><strong>１．成员是没有默认构造函数的类</strong></font></p>
<p><font color="#804000"><strong>２．成员是const对象</strong></font></p>
<p><font color="#804000"><strong>３．成员是引用类型的对象</strong></font></p>
<p>　　要注意的另外一点是：成员初始化的次序并不是它们出现在初始化列表中的次序，而是定义成员的次序．</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2009/12/25/cprimer%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b02_%e6%9e%84%e9%80%a0%e5%87%bd%e6%95%b0%e5%88%9d%e5%a7%8b%e5%8c%96%e5%bc%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++Primer学习笔记1_类作用域</title>
		<link>http://www.mousefire.net/2009/12/24/1-%e7%b1%bb%e4%bd%9c%e7%94%a8%e5%9f%9f/</link>
		<comments>http://www.mousefire.net/2009/12/24/1-%e7%b1%bb%e4%bd%9c%e7%94%a8%e5%9f%9f/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 06:36:43 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[C++Primer学习笔记]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2009/12/24/1-%e7%b1%bb%e4%bd%9c%e7%94%a8%e5%9f%9f/</guid>
		<description><![CDATA[　　这一章东西很杂，也很容易混淆。 一、类作用域包括以下内容 １、类定义体 ２、在类外定义的成员函数的定义（不包括返回类型） 二、类作用域中的名字查找 1.类成员的声明中用到的名字 (1)检查出现在名字使用之前的类成员的声明。 (2)如果第１步查找不成功，则检查包含类定义的作用域中出现在类定义前的声明。 2.类定义体中的成员函数的函数体中用到的名字 (1)检查成员函数局部作用域中的声明。 (2)检查对所有类成员的声明。 (3)检查在此成员函数定义之前的作用域中出现的声明。 3.定义在外部的成员函数的函数体中用到的名字 　　在2的基础上，还会寻找在成员函数定义之前出现的全局作用域声明]]></description>
			<content:encoded><![CDATA[<p><font size="2" face="微软雅黑">　　这一章东西很杂，也很容易混淆。</font></p>
<h5>一、类作用域包括以下内容</h5>
<p><font size="2" face="微软雅黑">１、类定义体</font></p>
<p><font size="2" face="微软雅黑">２、在类外定义的成员函数的定义（不包括返回类型）</font></p>
<h5>二、类作用域中的名字查找</h5>
<p><font size="2" face="微软雅黑">1.类成员的声明中用到的名字</font></p>
<p><font size="2" face="微软雅黑">(1)检查出现在名字使用之前的类成员的声明。</font></p>
<p><font size="2" face="微软雅黑">(2)如果第１步查找不成功，则检查包含类定义的作用域中出现在类定义前的声明。</font></p>
<p><font size="2" face="微软雅黑">2.类定义体中的成员函数的函数体中用到的名字</font></p>
<p><font size="2" face="微软雅黑">(1)检查成员函数局部作用域中的声明。</font></p>
<p><font size="2" face="微软雅黑">(2)检查对所有类成员的声明。</font></p>
<p><font size="2" face="微软雅黑">(3)检查在此成员函数定义之前的作用域中出现的声明。</font></p>
<p><font size="2" face="微软雅黑">3.定义在外部的成员函数的函数体中用到的名字</font></p>
<p><font size="2" face="微软雅黑">　　在2的基础上，还会寻找在成员函数定义之前出现的全局作用域声明</font></p>
<p><font size="2" face="微软雅黑"></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2009/12/24/1-%e7%b1%bb%e4%bd%9c%e7%94%a8%e5%9f%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VS2008环境下编译使用SGI STL（using stlport 5.2.1）</title>
		<link>http://www.mousefire.net/2009/12/24/vs2008%e7%8e%af%e5%a2%83%e4%b8%8b%e7%bc%96%e8%af%91%e4%bd%bf%e7%94%a8sgi-stl%ef%bc%88using-stlport-5-2-1%ef%bc%89/</link>
		<comments>http://www.mousefire.net/2009/12/24/vs2008%e7%8e%af%e5%a2%83%e4%b8%8b%e7%bc%96%e8%af%91%e4%bd%bf%e7%94%a8sgi-stl%ef%bc%88using-stlport-5-2-1%ef%bc%89/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 03:28:54 +0000</pubDate>
		<dc:creator>mousefire</dc:creator>
				<category><![CDATA[学海无涯]]></category>
		<category><![CDATA[漫谈]]></category>
		<category><![CDATA[SGI]]></category>
		<category><![CDATA[STL]]></category>
		<category><![CDATA[stlport]]></category>

		<guid isPermaLink="false">http://www.mousefire.net/2009/12/24/vs2008%e7%8e%af%e5%a2%83%e4%b8%8b%e7%bc%96%e8%af%91%e4%bd%bf%e7%94%a8sgi-stl%ef%bc%88using-stlport-5-2-1%ef%bc%89/</guid>
		<description><![CDATA[　　stlport据说是一位俄罗斯高人之作，目的就是为了让我们在多平台下可以使用高效的SGI STL，废话少说，先介绍下它的主页： http://sourceforge.net/projects/stlport/ 　　下面是下载地址，最新版本是5.2.1： http://sourceforge.net/projects/stlport/ 　　下载后解压，假设目录为：D:\STLport，接下来就该编译它了： 1.在开始菜单中找到VC　命令行工具，这样可以省去很多事（网上很多教程要做很多热身运动，为啥不让M$代行呢？接下来切换到D:\STLport目录。 2.可以运行configure &#8211;help看看编译选项，用MSVC编译器编译的话，输入以下命令： configure msvc9 3.输入 cd build/lib 4.输入 nmake clean install 稍等几分钟就可以编译好 5.在VS2008 IDE中做收尾工作： 　　依次选择“工具”-&#62;“选项”，在“项目和解决方案”下选择“VC++ 目录”，把D:\STLport\bin目录添加到“可执行文件”，把D:\STLport\include目录添加到“包含文件”（注意要放在最前，这样就可以取代默认的MSVC自己的STL库了），再把D:\STLport\lib目录添加到库目录和引用文件就ok了。]]></description>
			<content:encoded><![CDATA[<p>　　stlport据说是一位俄罗斯高人之作，目的就是为了让我们在多平台下可以使用高效的SGI STL，废话少说，先介绍下它的主页：</p>
<blockquote><p><a href="http://sourceforge.net/projects/stlport/">http://sourceforge.net/projects/stlport/</a></p>
</blockquote>
<p>　　下面是下载地址，最新版本是5.2.1：</p>
<blockquote><p><a href="http://sourceforge.net/projects/stlport/">http://sourceforge.net/projects/stlport/</a></p>
</blockquote>
<p>　　下载后解压，假设目录为：D:\STLport，接下来就该编译它了：</p>
<p>1.在开始菜单中找到VC　命令行工具，这样可以省去很多事（网上很多教程要做很多热身运动，为啥不让M$代行呢？接下来切换到D:\STLport目录。</p>
<p>2.可以运行configure &#8211;help看看编译选项，用MSVC编译器编译的话，输入以下命令：</p>
<blockquote><p><font color="#0000ff">configure msvc9</font></p>
</blockquote>
<p>3.输入</p>
<blockquote><p><font color="#0000ff">cd build/lib</font></p>
</blockquote>
<p>4.输入</p>
<blockquote><p><font color="#0000ff">nmake clean install</font></p>
</blockquote>
<p>稍等几分钟就可以编译好</p>
<p>5.在VS2008 IDE中做收尾工作：</p>
<p>　　依次选择“工具”-&gt;“选项”，在“项目和解决方案”下选择“VC++ 目录”，把D:\STLport\bin目录添加到“可执行文件”，把D:\STLport\include目录添加到“包含文件”（注意要放在最前，这样就可以取代默认的MSVC自己的STL库了），再把D:\STLport\lib目录添加到库目录和引用文件就ok了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mousefire.net/2009/12/24/vs2008%e7%8e%af%e5%a2%83%e4%b8%8b%e7%bc%96%e8%af%91%e4%bd%bf%e7%94%a8sgi-stl%ef%bc%88using-stlport-5-2-1%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
