随笔分类 - Qt/C++经验和类库
摘要:关于c++中继承多态virtual和override的几点总结。 子类可以直接使用基类中的protected下的变量和函数。 基类函数没加virtual,子类有相同函数,实现的是覆盖。用基类指针调用时,调用到的是基类的函数;用子类指针调用时,调用到的是子类的函数。 基类函数加了virtual时,实现
阅读全文
摘要:qtc开发工具内置了不少的函数,可以很方便的进行一些判断和处理。 //最小版本要求 !minQtVersion(5, 15, 2) { message("Cannot build Qt Installer Framework with Qt version $${QT_VERSION}.") err
阅读全文
摘要:一、知识要点 Qt即支持库的形式直接和数据库通信,也支持ODBC数据源的形式和各种数据库通信,这样就涵盖了所有的情况。 Qt数据库程序打包发布,所有前提:注意区分32/64位,你的程序是32位的就必须带上32位的库,64位的必须带上64位的库,这点Qt的库也是这个要求。mysql发布最简单,带上一个
阅读全文
摘要:近期特意花了点时间,在之前数据库集成应用这个组件的基础上再次迭代完善,历经九九八十一难,将Qt的各种数据库插件,十几个Qt版本,全部编译一遍,同时打通了插件形式直连数据库和ODBC数据源连接方式,做过各种对比测试,不同数据库不同分页算法,不同日期时间范围判断查询等。 安装对应的数据库,安装后会有in
阅读全文
摘要:在对表格数据模型操作的时候,经常遇到一种场景就是,删除某条记录后,希望重新选中某一行。QTableView、QTableWidget本身就支持多选全选等操作,比如批量删除可以多选。 //拿到表格数据模型 QAbstractItemModel *model = ui->tableView->model
阅读全文
摘要:开源的图表控件QCustomPlot很经典,作者至少是八星斗圣级别,在曲线数据展示这块性能彪悍,总结了一些容易忽略的经验要点。 可以将XY轴对调,然后形成横向的效果,无论是曲线图还是柱状图,分组图、堆积图等,都支持这个特性。 不需要的提示图例可以调用 legend->removeItem 进行移除。
阅读全文
摘要:Qt的网络库支持udp广播搜索和组播搜索,其中组播搜索可以跨网段搜索,有时候你会发现失灵,此时你可以尝试把本地的虚拟机的网卡禁用试试,估计就好了。还有就是在本地开启了代理啥的,先关掉试试。近期在使用tcpsocket连接的时候,发现在Qt4和Qt5中正常的程序,到了Qt6中就不行了,报错提示 The
阅读全文
摘要:在windows上经常遇到高分屏缩放的问题,很头疼,貌似这东西就是windows首发的。 在Qt4时代的程序遇到高分屏缩放,不作任何处理,毕竟Qt4时代(2010年以前)出来的时候几乎还没高分屏缩放这东西。 从Qt5.6开始提供了高分屏缩放支持,需要在main函数前面设置 QApplications
阅读全文
摘要:Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的。参考链接 https://www.qt.io/blog/2015/05/26/qt-4-8-7-released https://blog.qt.io/bl
阅读全文
摘要:关于交叉编译,对于初学者来说是个极难跨过去的砍(一旦跨过去了,以后遇到需要交叉编译的时候都是顺水推舟、信手拈来。),因为需要搭建交叉编译环境,好在现在厂家提供的板子基本上都是测试好的环境,尤其是提供的编译器,不用自己再去折腾,按照官方手册来基本上不会有啥的的问题。 在linux系统上编译ffmpeg
阅读全文
摘要:QMainWindow 在对停靠窗体进行排列的时候,有些不常用的设置容易遗忘,建议将 QMainWindow 的头文件函数过一遍一目了然。 //设置停靠参数,不允许重叠,只允许拖动 this->setDockOptions(QMainWindow::AnimatedDocks); //将底部左侧作为
阅读全文
摘要:有时候需要对文本进行分散对齐显示,相当于无论文字多少,尽可能占满整个空间平摊占位宽度,但是在对支持对齐方式的控件比如QLabel调用 setAlignment(QtAlignJustify | QtAlignVCenter) 设置分散对齐会发现没有任何效果,这个时候就要考虑另外的方式比如通过控制字体
阅读全文
摘要:随着需求的不断增加,程序不断变大,用到的动态库也越来越多,到了发布程序的时候你会发现和可执行文件同一目录下文件数量真多(比如著名的金融软件 https://www.webull.com/ 哎呀我去,目录下一堆动态库文件,滚动条都要拉很久,全部堆一块),此时可能会考虑如何将一些库文件分门别类的存放,这
阅读全文
摘要:关于权限设置,在早期的安卓版本,所有权限都写在全局配置文件AndroidManifest.xml中,这种叫安装时权限,就是安装的时候告诉安卓系统当前app需要哪些权限。大概从安卓6开始,部分权限需要动态申请,这种叫动态权限,这种申请到的权限也可以动态撤销,就是要求程序再次执行代码去向系统申请权限,比
阅读全文
摘要:安卓中一个界面窗体对应一个Activity,多个界面就有多个Activity,而在Qt安卓程序中,Qt这边只有一个Activity那就是QtActivity(包名全路径 org.qtproject.qt5.android.bindings.QtActivity),这个QtActivity是固定的写好
阅读全文
摘要:pro中引入安卓拓展模块 QT += androidextras 。 pro中指定安卓打包目录 ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android 指定引入安卓特定目录比如程序图标、变量、颜色、java代码文件、jar库文件等。 AndroidManifest.xm
阅读全文
摘要:编译生成debug版本动态库,文件末尾自动加上d结尾。 CONFIG(debug, debug|release) { win32: TARGET = $$join(TARGET,,,d) mac: TARGET = $$join(TARGET,,,_debug) unix:!mac: TARGET
阅读全文
摘要:关于Qt延时的几种方法。 void QUIHelperCore::sleep(int msec) { if (msec <= 0) { return; } #if 1 //非阻塞方式延时,现在很多人推荐的方法 QEventLoop loop; QTimer::singleShot(msec, &lo
阅读全文
摘要:1 直观总结 增加了很多轮子,同时原有模块拆分的也更细致,估计为了方便拓展个管理。 把一些过度封装的东西移除了(比如同样的功能有多个函数),保证了只有一个函数执行该功能。 把一些Qt5中兼容Qt4的方法废弃了,必须用Qt5中对应的新的函数。 跟随时代脚步,增加了不少新特性以满足日益增长的客户需求。
阅读全文
摘要:关于QList队列的处理中,我们最常用的就是调用append函数添加item,往前插入item很多人第一印象就是调用insert(0,xxx)来插入,其实QList完全提供了往前追加item的函数prepend、push_front。 QStringList list; list << "aaa"
阅读全文