Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2066|回复: 0
打印 上一主题 下一主题

Qt分享

[复制链接]

1272

主题

2067

帖子

7968

积分

认证用户组

Rank: 5Rank: 5

积分
7968
跳转到指定楼层
楼主
发表于 2020-1-30 19:52:40 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 Qter 于 2020-1-30 19:54 编辑

其中信号和槽,还有Qt的内存管理,我觉得是掌握Qt的关键,这也是它在技术方面区别与其他c++框架的2个特点。
   Qt是完全组件式编程的,也就是说它把我们常用到的功能模块编成动态库了,我们可以按需要分别去引用,而不用担心会把Qt整个框架加进来。比如,你要用Qt写个ftp程序,那只要引用QtCore4.lib和QtNetwork4.lib就可以,然后在发布时带上QtCore4.dll,QtNetwork4.dll。

     Qt的SDK可以直接去它官网下载,上面提供的下载版本很多,如果是在windows上面开发,建议大家下载qt-win-opensource-4.8.2-vs2010.exe
     Qt还提供了vs的插件,插件提供的功能有:新建Qt工程向导、帮助编译资源和moc (Meta Object Compiler)。这个插件也很好用,不过我一般不用它,我一般都是自己写脚本控制moc等,这样更灵活一些

1.Qt 可以用来做什么;
2.Hello World;
3.信号与槽函数;
4.Qt的内存管理机制;



Qt 是跨平台的应用程序和 UI 框架。 使用 Qt,您只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码。
使用单一的源代码库定位多个操作系统
通过重新利用代码可将代码跨设备进行部署
无须考虑平台,可重新分配开发资源
代码不受担忧平台更改影响的长远考虑
使开发人员专注于构建软件的核心价值,而不是维护 API








#include <QCoreApplication>

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        qDebug("Hello world!");
        return app.exec();
}




Signals & Slots



Observer pattern
callbacks
Many-to-many relationship
Loose coupling between signals and slots
Implemented in QObject


class NewClass : public QObject
{
        Q_OBJECT // Meta-object file needed
        // Code convention recommends Q_OBJECT use always,
        // otherwise qobject_cast fails
        signals:
        // Implementation in the meta-object
        void newSignal(int myInt, QString myString);
        public slots:
        // Slots are implemented as normal member functions
        void newSlot(int i, QString s);
}




Qt内存管理机制


所有继承自QObject类的类,如果在new的时候指定了父亲,那么它的清理是在父亲被delete的时候delete的;
建议使用deleteLater();
智能指针类QPointer;
链接:https://pan.baidu.com/s/1ZwA6xJQrkyWGpEsekSnOKw
提取码:g4sv





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-29 15:36 , Processed in 0.061994 second(s), 23 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表