• QT 实用代码片段 (持续更新)


        由于项目需要开始转型学习C++,GUI使用QT进行开发,开发过程中踩了不少坑,但是也积累了些宝贵经验,在这儿记录一下,希望能帮到需要的朋友。

    1、设置无边框对话框

    //设置对话框属性
    setWindowFlags(Qt::FramelessWindowHint|Qt::Tool);
    setAttribute(Qt::WA_TranslucentBackground);
    setMouseTracking(true);
    

    2、安全释放指针

    //安全释放指针
    #if ! defined(SAFE_DELETE)
    # define SAFE_DELETE(p)do{if(p!=Q_NULLPTR){deletep;p=Q_NULLPTR;}}while(0)
    #endif
    //安全释放数组指针
    #if ! defined(SAFE_DELETE_ARRAY)
    # define SAFE_DELETE_ARRAY(p)do{if(p!=Q_NULLPTR){delete[]p;p=Q_NULLPTR;}}while(0)
    #endif

    3、如果引用的windows的api - 编译时提示无法解析外部符号

    #ifdef Q_OS_WIN
    #pragma comment(lib, "user32.lib")
    #include <qt_windows.h>
    #endif

    4、屏蔽编译时无影响的警告信息

    //编译时屏蔽警告4705
    #pragma warning(disable:4705)

    5、QT5 connect 的各种重载形式

    //QT5 connect 的5种重载形式
    QMetaObject::Connection connect(const QObject *, const char *, const QObject *, const char *, Qt::ConnectionType);
    QMetaObject::Connection connect(const QObject *, const QMetaMethod &, const QObject *, const QMetaMethod &, Qt::ConnectionType);
    QMetaObject::Connection connect(const QObject *, const char *, const char *, Qt::ConnectionType) const;
    QMetaObject::Connection connect(const QObject *, PointerToMemberFunction, const QObject *, PointerToMemberFunction, Qt::ConnectionType)
    //匿名函数方式连接
    QMetaObject::Connection connect(const QObject *, PointerToMemberFunction, Functor);
    //Qt5最常用的连接方式
    connect(sender,  signal, receiver, slot);
    

    6、通过匿名函数,监控对象何时被销毁(可通过该方法了解QT对象创建及销毁机制)

    QLabel *label = new QLabel("Hello, world");
    //设置该属性后,该对象会由QT进行释放,否则需要手动释放
    label->setAttribute(Qt::WA_DeleteOnClose);
    label->show();
    QObject::connect(label, &QLabel::destroyed, [=]()
    {
          qDebug() << QDateTime::currentDateTime().toString()  << "QLabel 对象被销毁!";
    });
    

    持续更新中.....

    如果你觉得对你有帮助,请帮忙点个赞!3Q!

  • 相关阅读:
    Pandas对于CSV的简单操作
    前端之BOM和DOM
    前端之JavaScript
    前端之CSS初识
    定时ping取返回值并绘图
    etree不存在解决方法
    内置方法练习(一)
    pip使用
    python变量、变量属性
    python 爬取段子网段子写入文件
  • 原文地址:https://www.cnblogs.com/brucezhang80/p/qt_code_snippets.html
Copyright © 2020-2023  润新知