随笔分类 - Qt / Qt 实用技巧
摘要:## forever 死循环宏定义,和 while(1) 类似,其底层使用 for( ; ; ) 实现,使用方法如下: ```c++ forever { // ... } ``` ## foreach ```c++ QStringList strList; QString str; foreach(
阅读全文
摘要:本文主要积累一些常用宏定义,有些定义在头文件 QtGlobal 中。 ## QT_VERSION ,QT_VERSION_CHECK ```c++ // 主要用于条件编译设置,根据Qt版本不同编译不同的代码 // 我这里用的Qt版本是5.12.2,因此软件走的分支是isHighVer = false
阅读全文
摘要:## 一、注释: 用 # 注释,表示到行尾均为注释。 ## 二、include: 包含别的文件,例如:`include xx.pri`。类似于 c++ 的 #include。。。 ## 三、平台宏: `win32/macx/unix/linux-g++`等,分别对应于`windows、mac、uni
阅读全文
摘要:当发送的信号是结构体时: 第一步:定义一个结构体.并在包含该结构体的类里面注册该结构体,通过此方法Q_DECLARE_METATYPE(T). 第二步:作为信号输出时,不能直接传结构体,要先包装一下结构再传出去;接收时,也要拆开包装,才能拿到数据,这里借助 QVariant ; 最后一步:连接信号.
阅读全文
摘要:方式一:事件过滤器 // 构造函数内:记得安装事件过滤器 this->installEventFilter(this); bool MainWidget::eventFilter(QObject *obj, QEvent *event) { // 判断部件 if (obj == m_pWidget)
阅读全文
摘要:给顶层窗口添加阴影和圆角 现在的应用软件很多都是窗口一圈带有阴影,可能还会有圆角。对于子部件来说,实现阴影就用 QGraphicsDropShadowEffect 就好了,而实现圆角用 QSS 就好了。但对于顶层窗口就不行了。 首先我们要了解一下为什么对于顶层窗口就不行了呢? 对于一个窗口来说,无论
阅读全文
摘要:一、实现方案 目前使 Qt 运行一个实例有如下几种方式: 1.QSharedMemory 使用共享内存,当第二个进程启动时,判断内存区数据是否建立,如有,则退出;这种方式有弊端,在程序发生崩溃时,未及时清除共享区数据,导致程序不能正常启动。 2.文件锁 在程序运行的时候就在目录下创建一个文件,当程序
阅读全文
摘要:Wifi连接-自动获取IP 实现程序如下: // 设置网络为DHCP QProcess cmd; cmd.start(QString("netsh interface ip set address \"%1\" dhcp").arg("WLAN")); cmd.waitForStarted(); c
阅读全文
摘要:经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。 比如我们有一个程序在: C:/Qt/examples/tool
阅读全文
摘要:窗口的最小化、最大化按钮自定义 setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); // 只要关闭按钮 setWindowFlags(Qt::WindowFlags type) 全屏显
阅读全文
摘要:## Qt判断当前操作系统? 可使用宏判断,例如: ```c++ #ifdef Q_OS_MAC //mac ... #endif #ifdef Q_OS_LINUX //linux ... #endif #ifdef Q_OS_WIN32 //win ... #endif #ifdef __arm
阅读全文