zl程序教程

QT 开发小技巧

  • 快速掌握Qt开发在Linux平台的技巧(qtLinux教程)

    快速掌握Qt开发在Linux平台的技巧(qtLinux教程)

    说到Qt开发,在Linux平台上使用它更加便捷。由于Linux操作系统是开源的,它有很好的可移植性和可扩展性,这使得它在应用开发中受到广泛的应用。本文介绍了在Linux平台上快速掌握Qt开发技巧的教程。 首先,我们在Linux平台安装Qt,这一般是比较简单的,安装完成后,可以通过Qt的命令行界面创建应用程序,以及设置和配置应用程序。Qt还提供了一系列的图形用户界面(GUI)设计器,这些设计器可

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧201-205

    Qt开发经验小技巧201-205

    编译生成debug版本动态库,文件末尾自动加上d结尾。 CONFIG(debug, debug|release) { win32: TARGET = $$join(TARGET,,,

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧196-200

    Qt开发经验小技巧196-200

    关于Qt延时的几种方法。 void QUIHelperCore::sleep(int msec) { if (msec <= 0) { return; } #if 1

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧181-185

    Qt开发经验小技巧181-185

    Qt天生就是linux的,从linux开始发展起来的,所以不少Qt程序员经常的开发环境是linux,比如常用的ubuntu等系统,整理了一点常用的linux命令。 命

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧176-180

    Qt开发经验小技巧176-180

    QCamera中获取设备的配置参数比如支持的分辨率集合等,需要先调用load后才能正确获取,或者关联stateChanged信号中判断状态是否是ActiveState,然后再读取。

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧156-160

    Qt开发经验小技巧156-160

    Qt的UI界面在resize以后有个BUG,悬停样式没有取消掉,需要主动模拟鼠标动一下。 void frmMain::on_btnMenu_Max_clicked() { ......

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧151-155

    Qt开发经验小技巧151-155

    当Qt中编译资源文件太大时,效率很低,或者需要修改资源文件中的文件比如图片、样式表等,需要重新编译可执行文件,这样很不友好,当然Qt都给我们考虑好了策略&

    日期 2023-06-12 10:48:40     
  • QT工具——开发技巧与其他工具

    QT工具——开发技巧与其他工具

    vs code 开发 https://blog.csdn.net/caoshiying/article/details/78281996 https://www.cnblogs.com/TssiNG-Z/p/12176991.html 格式化代码: https://blog.csdn.net/zzs0829/article/details/83933747 https://www.jianshu

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧246-250

    Qt开发经验小技巧246-250

    在编写类中有时候需要对变量进行赋值和取值,这时候一般用 setxxx、getxxx 之类的函数进行处理,而且往往里面就一行代码,这时候你可能会思考为何不直接将变量改成public暴露出来使用,还可以省两个函数几行代码。其实用set get这样处理主要还是为了拓展性,比如后期如果需要对赋值进行过滤处理,或者该变量只允许读写中的一个,如果之前是直接使用的变量外,则使用的地方都要去修改规则,反而变

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧236-240

    Qt开发经验小技巧236-240

    关于在头文件中定义函数使用static关键字的血的教训。 有时候我们需要将一些常用函数写在一个文件中供很多地方调用,如果写的是 int doxxx{} 这种,在你多个地方引用的时候,肯定会编译报错提示 “重复定义” 的错误。 此时你需要在函数前面加上static关键字,变成 static int doxxx{} 这种,能够正常编译和运行,以为一切万事大吉,还是我太年轻。 如果仅仅是一个类中

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧201-205

    Qt开发经验小技巧201-205

    编译生成debug版本动态库,文件末尾自动加上d结尾。 CONFIG(debug, debug|release) { win32: TARGET = $$join(TARGET,,,d) mac: TARGET = $$join(TARGET,,,_debug) unix:!mac: TARGET = $$join(TARGET,,,d) }

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧186-190

    Qt开发经验小技巧186-190

    关于是使用QList还是QVector的问题,一直是众多Qter的选择问题,主要是这两个玩意提供的的接口函数基本一致,比如插入、删除、取值等。 大多数情况下可以用QList。像append、prepend、insert这种操作,通常QList比QVector快的多。 QList是基于index标签存储它的元素项在内存中,比那种依赖iterator迭代的更快捷,而且你的代码也更少。 如果你需

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧166-170

    Qt开发经验小技巧166-170

    有时候需要暂时停止某个控件发射信号(比如下拉框combobox添加数据的时候会触发当前元素改变信号),有多种处理,推荐用 blockSignals 方法。 //方法1:先 disconnect 掉信号,处理好以后再 connect 信号,缺点很明显,很傻,如果信号很多,每个型号都要这么来一次。 disconnect(ui->cbox, SIGNAL(currentIndexChange

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧146-150

    Qt开发经验小技巧146-150

    Qt中自带的很多控件,其实都是由一堆基础控件(QLabel、QPushButton等)组成的,比如日历面板 QCalendarWidget 就是 QToolButton+QSpinBox+QTableView 等组成,妙用 findChildren 可以拿到父类对应的子控件集合,可以直接对封装的控件中的子控件进行样式的设置,其他参数的设置比如设置中文文本(默认可能是英文)等。 //打印子类类

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧131-140

    Qt开发经验小技巧131-140

    Qt新版本往往会带来一些头文件的更新,比如以前使用QPainter绘制,不需要额外包含QPainterPath头文件,而5.15版本开始就需要显示主动引入#include "qpainterpath.h"才行。 Qt6.0发布了,是个比较大的改动版本,很多基础的类或者组件都放到单独的源码包中,需要自行官网下载并编译,默认不提供集成在开发目录下,需要手动编译并集成,比如QRegExp,QT

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧121-130

    Qt开发经验小技巧121-130

    QLineEdit除了单纯的文本框以外,还可以做很多特殊的处理用途。 限制输入只能输入IP地址。 限制输入范围,强烈推荐使用 QRegExpValidator 正则表达式来处理。 //正在表达式限制输入 QString str = "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[0

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧91-100

    Qt开发经验小技巧91-100

    数据库处理一般建议在主线程,如果非要在其他线程,务必记得打开数据库也要在那个线程,即在那个线程使用数据库就在那个线程打开,不能打开数据库在主线程,执行sql在子线程,很可能出问题。 新版的QTcpServer类在64位版本的Qt下很可能不会进入incomingConnection函数,那是因为Qt5对应的incomingConnection函数参数变了,由之前的int改成了qintptr

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧41-50

    Qt开发经验小技巧41-50

    如果使用sqlite数据库不想产生数据库文件,可以创建内存数据库。 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(":memory:"); 清空数据表并重置自增ID,sql = truncate table table_name。 Qtchart模块从Qt5.7开始自带,最低编译

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧11-20

    Qt开发经验小技巧11-20

    获取类的属性 const QMetaObject *metaobject = object->metaObject(); int count = metaobject->propertyCount(); for (int i = 0; i < count; ++i) { QMetaProperty metaproperty = metaobject->prop

    日期 2023-06-12 10:48:40     
  • Qt开发经验小技巧1-10

    Qt开发经验小技巧1-10

    当编译发现大量错误的时候,从第一个看起,一个一个的解决,不要急着去看下一个错误,往往后面的错误都是由于前面的错误引起的,第一个解决后很可能都解决了。 定时器是个好东西,学会好使用它,有时候用QTimer::singleShot可以解决意想不到的问题。 打开creator,在构建套件的环境中增加MAKEFLAGS=-j8,可以不用每次设置多线程编译。珍爱时间和生命。新版的QtCreat

    日期 2023-06-12 10:48:40     
  • Qt的一些开发技巧

    Qt的一些开发技巧

    Lambda匿名函数 有时候槽函数代码辑逻辑非常简单,可以直接用下面的Lambda匿名函数处理信号,简捷明了.需c++11支持,不支持自身递归调用. 1 2 3 4 5 6 7 QComboBox *cb = new QComboBox(this); QObject::connect(cb,&QComboBox::currentTextChanged,[=](QStrin

    日期 2023-06-12 10:48:40