字符串转int(qt字符串转int)

字符串转int(qt字符串转int)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>继续记录一些Qt开发中的技巧操作&#xff1a;<br /> <strong>1.字符串类型转换</strong><br /> 在开发过程中经常遇到需要将QString转成char *或者const char *的情况&#xff0c;在转换成QByteArray后调用.data()或者.constData()函数进行转换即可。但需要注意的是&#xff0c;如果转换类型是const char *尽管用data()不会出错&#xff0c;会给你自动转换&#xff0c;但是还是不建议&#xff0c;因为深拷贝了一份&#xff0c;理论上增加了内存开销&#xff0c;如果字符串长度小还好&#xff0c;一旦很长&#xff0c;这个开销挺大。</p> 

讯享网

讯享网

2.程序启动钱的调用
有些场景下我们需要在 QApplication a(argc, argv); 前面执行一些处理,比如QApplication::setAttribute 就必须在最前面执行,而很多时候这个设置的参数不能写死,毕竟现场的环境千差万别,希望通过配置文件来配置,那么问题来了,读取配置文件一般需要指定路径才能正常读取到,如果是 https://blog.csdn.net/qianniulaoren/article/details/ 这种,很可能未必是应用程序的当前路径,如果你是双击运行的程序,那肯定是应用程序的当前路径,不是双击运行那就是系统环境中的当前路径,意味着你开机启动或者用system、QProcess等方式在开机后调用启动的话,就未必正确了。为了保证这个路径的正确,必须从main函数的 argv 第一个值获取,通过查阅Qt自身代码中获取路径,也是从这个参数获取。


讯享网

 

3.窗体前景色的设定
当我们对QTableView/QTreeView/QTableWidget/QTreeWidget这类窗体的某行选中后,会发现某些单元格设置的前景色被覆盖了,比如设置的红色,一旦选中就变成了白色,这肯定不是我们想要的,需要用自定义委托将其去掉。

讯享网

4.判断是否模块引入
有些时候我们需要在项目文件比如pro/pri中识别当前Qt套件是否存在某个模块以及是否引入过某个模块,存在则引入,同时也希望代码中也能识别是否引入过某个模块比如sql模块,判断后再进行对应的处理。

 

5.MDI窗体背景透明
对MDI窗体区域设置背景颜色透明,会发现 QMdiArea{background:transparent;} 无效,哪怕是指定颜色 QMdiArea{background:#ff0000;} 或者 QMdiArea{background-color:#ff0000;} 都不行,这里其实是需要用弱属性机制才行。QMdiArea{qproperty-background:transparent;}
6.路径类字符串处理
. 用QProcess执行命令或者启动可执行文件,默认写法不支持带空格的路径,比如 Program Files ,需要在这个路径前后加上双引号才行,估计可能内部会用空格分割字符串导致解析失败。普通路径加上引号也能正常执行,所以为了确保以防万一,最好的方式是但凡路径类的字串,都统一加上引号。


讯享网

7.变量尽量不要放在循环体内
在循环中取值,临时变量的定义尽量在循环外层定义,每次在循环里层定义会增加开销,特别是复杂类型比如QString(基础类型比如int/bool差别不大),循环次数越多,性能差别越大。

 


小讯
上一篇 2025-04-23 21:29
下一篇 2025-06-05 22:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/153647.html