QT
来源:互联网 发布:c语言打印数字图形 编辑:程序博客网 时间:2024/05/17 03:52
<div class="article_title"> <span class="ico ico_type_Original"></span> <h1> <span class="link_title"><a href="/liyuanbhu/article/details/53710249"> Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法 </a></span> </h1></div> <div class="article_manage clearfix"> <div class="article_r"> <span class="link_postdate">2016-12-17 17:52</span> <span class="link_view" title="阅读次数">1914人阅读</span> <span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span> <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('Qt+%e7%a8%8b%e5%ba%8f%e8%8e%b7%e5%8f%96%e7%a8%8b%e5%ba%8f%e6%89%80%e5%9c%a8%e8%b7%af%e5%be%84%e3%80%81%e7%94%a8%e6%88%b7%e7%9b%ae%e5%bd%95%e8%b7%af%e5%be%84%e3%80%81%e4%b8%b4%e6%97%b6%e6%96%87%e4%bb%b6%e5%a4%b9%e7%ad%89%e7%89%b9%e6%ae%8a%e8%b7%af%e5%be%84%e7%9a%84%e6%96%b9%e6%b3%95','53710249');return false;" title="收藏" target="_blank">收藏</a></span> <span class="link_report"> <a href="#report" onclick="javascript:report(53710249,2);return false;" title="举报">举报</a></span> </div> </div> <div class="embody" style="display:none" id="embody"> <span class="embody_t">本文章已收录于:</span> <div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div> </div> <style type="text/css"> .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px #ededed; } .embody_b{ margin:0 ; padding:10px 0; } .embody .embody_t,.embody .embody_c{ display: inline-block; margin-right:10px; } .embody_t{ font-size: 12px; color:#999; } .embody_c{ font-size: 12px; } .embody_c img,.embody_c em{ display: inline-block; vertical-align: middle; } .embody_c img{ width:30px; height:30px; } .embody_c em{ margin: 0 20px 0 10px; color:#333; font-style: normal; } </style> <script type="text/javascript"> $(function () { try { var lib = eval("("+$("#lib").attr("value")+")"); var html = ""; if (lib.err == 0) { $.each(lib.data, function (i) { var obj = lib.data[i]; //html += '<img src="' + obj.logo + '"/>' + obj.name + " "; html += ' <a href="' + obj.url + '" target="_blank">'; html += ' <img src="' + obj.logo + '">'; html += ' <em><b>' + obj.name + '</b></em>'; html += ' </a>'; }); if (html != "") { setTimeout(function () { $("#lib").html(html); $("#embody").show(); }, 100); } } } catch (err) { } }); </script> <div class="category clearfix"> <div class="category_l"> <img src="http://static.blog.csdn.net/images/category_icon.jpg"> <span>分类:</span> </div> <div class="category_r"> <label onclick="GetCategoryArticles('1151068','liyuanbhu','top','53710249');"> <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Qt 编程<em>(30)</em></span> <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;"> <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;"> <div class="subItem"> <div class="subItem_t"><a href="http://blog.csdn.net/liyuanbhu/article/category/1151068" target="_blank">作者同类文章</a><i class="J_close">X</i></div> <ul class="subItem_l" id="top_1151068"> </ul> </div> </label> </div> </div> <script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script> <div class="bog_copyright"> <p class="copyright_p">版权声明:本文为博主原创文章,未经博主允许不得转载。</p> </div> <div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="#" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" onclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="#t0">Qt 程序获取程序所在路径用户目录路径临时文件夹等特殊路径的方法</a></li><ol><li><a href="#t1">程序所在路径</a></li><li><a href="#t2">当前工作目录</a></li><li><a href="#t3">用户目录路径</a></li><li><a href="#t4">我的文档路径</a></li><li><a href="#t5">桌面路径</a></li><li><a href="#t6">程序数据存放路径</a></li><li><a href="#t7">临时文件路径</a></li></ol></ol></div><div style="clear:both"></div><div id="article_content" class="article_content"> <div class="markdown_views"><h1 id="qt-程序获取程序所在路径用户目录路径临时文件夹等特殊路径的方法"><a name="t0"></a>Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法</h1><p>经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。算是个备忘录吧。</p><h2 id="程序所在路径"><a name="t1"></a>程序所在路径</h2><p>获取程序所在路径,QCoreApplication 类里就实现了相关的功能:</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QString</span> <span class="hljs-tag">QCoreApplication</span><span class="hljs-pseudo">::applicationDirPath()</span></code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>比如我们有一个程序在:</p><pre class="prettyprint" name="code"><code class="hljs ruby has-numbering"><span class="hljs-constant">C</span><span class="hljs-symbol">:/Qt/examples/tools/regexp/regexp</span>.exe</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>那么 qApp->applicationDirPath() 的结果是:</p><pre class="prettyprint" name="code"><code class="hljs ruby has-numbering"><span class="hljs-constant">C</span><span class="hljs-symbol">:/Qt/examples/tools/regexp</span></code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>如果除了程序所在路径,我们还想要程序的完整名称。那么可以这么写:</p><pre class="prettyprint" name="code"><code class="hljs haskell has-numbering"><span class="hljs-title">qApp</span>->applicationFilePath()</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>还是上面的例子,结果是:</p><pre class="prettyprint" name="code"><code class="hljs ruby has-numbering"><span class="hljs-constant">C</span><span class="hljs-symbol">:/Qt/examples/tools/regexp/regexp</span>.exe</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><h2 id="当前工作目录"><a name="t2"></a>当前工作目录</h2><p>QDir 提供了一个静态函数 currentPath() 可以获取当前工作目录,函数原型如下:</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QString</span> <span class="hljs-tag">QDir</span><span class="hljs-pseudo">::currentPath()</span></code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>如果我们是双击一个程序运行的,那么程序的工作目录就是程序所在目录。</p><p>如果是在命令行下运行一个程序,那么运行程序时在命令行的哪个目录,那个目录就是当前目录。</p><h2 id="用户目录路径"><a name="t3"></a>用户目录路径</h2><p>Qt 4 中的方法。下面的方法只对 Qt 4 有效,Qt 5 已经删除了 storageLocation() 方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDesktopServices</span><span class="hljs-pseudo">::storageLocation(QDesktopServices</span><span class="hljs-pseudo">::HomeLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>Qt 5 中引入的方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::writableLocation(QStandardPaths</span><span class="hljs-pseudo">::HomeLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>或者</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::standardLocations(QStandardPaths</span><span class="hljs-pseudo">::HomeLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>这两个方法的区别是 standardLocations() 返回值是 QStringList。当然对于 HomeLocation 来说这个 QStringList 中只有一个 QString。</p><p>还有另外一种方法,利用 QDir 类的一个静态函数:</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDir</span><span class="hljs-pseudo">::homePath()</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><h2 id="我的文档路径"><a name="t4"></a>我的文档路径</h2><p>Qt 4 中的方法。下面的方法只对 Qt 4 有效,Qt 5 已经删除了 storageLocation() 方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDesktopServices</span><span class="hljs-pseudo">::storageLocation(QDesktopServices</span><span class="hljs-pseudo">::DocumentsLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>Qt 5 中引入的方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::writableLocation(QStandardPaths</span><span class="hljs-pseudo">::DocumentsLocation)</span>;<span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::standardLocations(QStandardPaths</span><span class="hljs-pseudo">::DocumentsLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre><h2 id="桌面路径"><a name="t5"></a>桌面路径</h2><p>Qt 4 中的方法。下面的方法只对 Qt 4 有效,Qt 5 已经删除了 storageLocation() 方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDesktopServices</span><span class="hljs-pseudo">::storageLocation(QDesktopServices</span><span class="hljs-pseudo">::DesktopLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>Qt 5 中引入的方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::writableLocation(QStandardPaths</span><span class="hljs-pseudo">::DesktopLocation)</span>;<span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::standardLocations(QStandardPaths</span><span class="hljs-pseudo">::DesktopLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre><h2 id="程序数据存放路径"><a name="t6"></a>程序数据存放路径</h2><p>通常我们会将程序所需的一些数据存入注册表。但是有时需要存储的数据太多,放在注册表中就不适合了。这时我们就要找个专门的地方来放数据。以前我喜欢将数据直接放到程序所在目录,但是后来发现我的程序运行时经常没有权限对这个目录下的文件进行写操作。后来发现其实 Qt 早就替我们考虑过这些问题了。</p><p>Qt 4 中的方法。下面的方法只对 Qt 4 有效,Qt 5 已经删除了 storageLocation() 方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDesktopServices</span><span class="hljs-pseudo">::storageLocation(QDesktopServices</span><span class="hljs-pseudo">::DataLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>Qt 5 中引入的方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::writableLocation(QStandardPaths</span><span class="hljs-pseudo">::AppDataLocation)</span>;<span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::standardLocations(QStandardPaths</span><span class="hljs-pseudo">::AppDataLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre><p>Qt 5.5 中引入了另一种方法:</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::writableLocation(QStandardPaths</span><span class="hljs-pseudo">::AppConfigLocation)</span>;<span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::standardLocations(QStandardPaths</span><span class="hljs-pseudo">::AppConfigLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre><p>这个方法一般来说和上面的方法得到的结果是相同的。按照 Qt 帮助文档的解释,这个方法可以确保返回的路径非空。所以我认为应该优先选用这个方法。</p><h2 id="临时文件路径"><a name="t7"></a>临时文件路径</h2><p>Qt 4 中的方法。下面的方法只对 Qt 4 有效,Qt 5 已经删除了 storageLocation() 方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDesktopServices</span><span class="hljs-pseudo">::storageLocation(QDesktopServices</span><span class="hljs-pseudo">::TempLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>Qt 5 中引入的方法。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::writableLocation(QStandardPaths</span><span class="hljs-pseudo">::TempLocation)</span>;<span class="hljs-tag">QStandardPaths</span><span class="hljs-pseudo">::standardLocations(QStandardPaths</span><span class="hljs-pseudo">::TempLocation)</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre><p>更传统的方法是利用 QDir 的一个静态函数 tempPath()。</p><pre class="prettyprint" name="code"><code class="hljs css has-numbering"><span class="hljs-tag">QDir</span><span class="hljs-pseudo">::tempPath()</span>;</code><ul class="pre-numbering" style="opacity: 0;"><li>1</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering" style=""><li>1</li></ul></pre><p>在这个目录下生成临时文件和临时目录需要用到另外两个类: QTemporaryFile 和 QTemporaryDir。就不展开介绍了,大家可以参考 qt 的帮助文档。</p><p>至此,常用的各种特殊路径就介绍的差不多了。剩下还有些不常用的,可以参考 QStandardPaths 类的介绍。</p></div> <script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul></ul>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li></li>').text(i)); }; $numbering.fadeIn(1700); }); }); </script> </div><!-- Baidu Button BEGIN --><div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1492256360949"><a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a></div><script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script><!-- Baidu Button END --> <link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css"> <!--172.16.140.13--><!-- Baidu Button BEGIN --><script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=414516"></script><script type="text/javascript"> document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)</script><!-- Baidu Button END --><script type="text/javascript"> var fromjs = $("#fromjs"); if (fromjs.length > 0) { $("#fromjs .markdown_views pre").addClass("prettyprint"); prettyPrint(); $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); $('.pre-numbering li').css("color", "#999"); } </script> <div id="digg" articleid="53710249"> <dl id="btnDigg" class="digg digg_disable" onclick="btndigga();"> <dt>顶</dt> <dd>5</dd> </dl> <dl id="btnBury" class="digg digg_disable" onclick="btnburya();"> <dt>踩</dt> <dd>0</dd> </dl> </div> <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a> </div> <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div> <script type="text/javascript"> function btndigga() { $(".tracking-ad[data-mod='popu_222'] a").click(); } function btnburya() { $(".tracking-ad[data-mod='popu_223'] a").click(); } </script> <ul class="article_next_prev"> <li class="prev_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/liyuanbhu/article/details/53573847';">上一篇</span><a href="/liyuanbhu/article/details/53573847" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">利用开源软件 Hugin 实现照片的景深合成</a></li> <li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/liyuanbhu/article/details/53859352';">下一篇</span><a href="/liyuanbhu/article/details/53859352" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">柯朗微积分与数学分析习题选解(1.1 节 a)</a></li> </ul> <div style="clear:both; height:10px;"></div> <div class="similar_article" style=""> <h4>我的同类文章</h4> <div class="similar_c" style="margin:20px 0px 0px 0px"> <div class="similar_c_t"> <label class="similar_cur"> <span style="cursor:pointer" onclick="GetCategoryArticles('1151068','liyuanbhu','foot','53710249');">Qt 编程<em>(30)</em></span> </label> </div> <div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;"> <a href="http://blog.csdn.net" style="display:none" target="_blank">http://blog.csdn.net</a> <ul class="similar_list fl"><li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/65936340" id="foot_aritcle_65936340undefined8216363802790175" target="_blank" title="游戏手柄(JoyStick)编程控制的一个简单代码(Qt)">游戏手柄(JoyStick)编程控制的一个简单代码(Qt)</a><span>2017-03-25</span><label><i>阅读</i><b>154</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/60147904" id="foot_aritcle_60147904undefined5601553735276035" target="_blank" title="谈谈 Qt 程序安装包的大小,以及简要打包指南">谈谈 Qt 程序安装包的大小,以及简要打包指南</a><span>2017-03-03</span><label><i>阅读</i><b>307</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/52895512" id="foot_aritcle_52895512undefined8292974483310708" target="_blank" title="QtChart 初体验">QtChart 初体验</a><span>2016-10-22</span><label><i>阅读</i><b>1535</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/50378670" id="foot_aritcle_50378670undefined27904986034987633" target="_blank" title="QtCreator (Visual C++ 编译器)编译时提示 warning C4819 的解决办法">QtCreator (Visual C++ 编译器)编译时提示 warning C4819 的解决办法</a><span>2015-12-22</span><label><i>阅读</i><b>2148</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/47071307" id="foot_aritcle_47071307undefined5934013182653401" target="_blank" title="漫水填充算法的一个简单实现(Qt版)">漫水填充算法的一个简单实现(Qt版)</a><span>2015-08-08</span><label><i>阅读</i><b>2647</b></label></li> </ul> <ul class="similar_list fr"><li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/61415177" id="foot_aritcle_61415177undefined8984503930131077" target="_blank" title="Qt 中 qRound() 函数的使用时的一个小问题">Qt 中 qRound() 函数的使用时的一个小问题</a><span>2017-03-11</span><label><i>阅读</i><b>77</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/53208269" id="foot_aritcle_53208269undefined24628033435249175" target="_blank" title="用 Qt 的 QAudioOutput 类播放 WAV 音频文件">用 Qt 的 QAudioOutput 类播放 WAV 音频文件</a><span>2016-11-17</span><label><i>阅读</i><b>1204</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/50509378" id="foot_aritcle_50509378undefined7770311535148896" target="_blank" title="Qt 开发程序后的发布问题">Qt 开发程序后的发布问题</a><span>2016-01-13</span><label><i>阅读</i><b>1639</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/49277171" id="foot_aritcle_49277171undefined250488952100117" target="_blank" title="OpenCV 学习 (Split 和 Merge)">OpenCV 学习 (Split 和 Merge)</a><span>2015-10-20</span><label><i>阅读</i><b>4323</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/liyuanbhu/article/details/46895141" id="foot_aritcle_46895141undefined9784602984422875" target="_blank" title="Qt 的事件过滤器">Qt 的事件过滤器</a><span>2015-07-15</span><label><i>阅读</i><b>1670</b></label></li> </ul> <a href="http://blog.csdn.net/liyuanbhu/article/category/1151068" class="MoreArticle">更多文章</a></div> </div> </div> <script type="text/javascript"> $(function () { GetCategoryArticles('1151068', 'liyuanbhu','foot','53710249'); }); </script>
0 0
- QT
- QT
- QT
- Qt
- qt
- QT
- QT
- QT
- QT
- qt
- Qt
- QT
- qt
- qt
- Qt
- Qt
- QT
- qt
- 文章标题
- oracle3
- String.Empty和null的区别
- Android Studio 技巧之 【Negation Completion】
- NYOJ--927--搜索--The partial sum problem
- QT
- DYOJ 动物统计
- 高性能网络编程(一)—-ACCEPT建立连接
- 悼念512汶川大地震的同胞
- (转)Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
- unity3d 本地存储选择
- 排序算法的总结(一)
- 207. Course Schedule (Medium)&& 210. Course Schedule II(Medium)
- zoj 3957 kmp 算法