• Qt初步学习


    一、Qt的环境与工具
    1、工具
    a、Qt助手:里面详细说明了Qt框架中的每一个类、函数、宏等
    是开发的必备工具,在终端可以使用assistant开启
    b、构建器:负责把源码文件、头文件构建成一个Qt工程,并且生成Makefile文件
    c、Qt设计器:以画图的方式来进行设计界面,设计出的界面是没有功能的,如果需要完成相应的功能,还要与代码相结合(界面文件可以转换成源码)
    d、Qt界面编译器:负责把以.ui结尾的界面文件,生成对应的代码
    e、Qt创造器:(Qt creator 集成开发环境:集合了编辑器、助手、构建器、设计器、编译器)

    2、头文件和库
    Qt框架的头文件存储在/usr/include/qt4,一般以Qt开头结尾无.h
    Qt框架中的共享库存在/usr/lib/qt4/imports目录中,一般以libQt开头

    二、第一个Qt程序
    1、编写源码
    a、创建目录,每个Qt工程都要有‪一个单独的目录
    b、编写入口
    QApplicaton app(argc,argv);
    QLabel lab("hello world");
    lab.show();
    return app.exec();

    2、生成工程文件
    qmake -project ->目录名.pro
    此文件可以被Qt创造器打开
    3、生成Makefile 文件
    qmake->Makefile
    4、编译
    Qt程序在编译时语法检查非常严密,错误信息也很多


    三、如何查阅文档
    1、打开Qt帮助文档(assistant命令),使用索引、搜索找到对应的控件类、函数、宏,Inherits:它的父类有哪些
    2、头文件,要注意使用此控件时要添加什么头文件,一般情况下是类名
    3、Properties:具有保护属性的成员变量
    4、Public Functions:具有公开属性的成员函数,部分功能函数可能在父类中,当需要找的功能函数找不到时,可以去父类中查找
    5、Reimplemented Public Functions:可以重写的成员函数
    6、Public Slots:具有公开属性的槽函数,首先它具有某些功能的成员函数,但它可以与信号绑定,不光可以被信号调用,也可以被直接调用
    7、Signals:它们是以函数形式存在的,但它们并不实现出来,可以用emit显示的触发
    8、Reimplemented Properties Functions:可以重写的具有保护属性的函数
    9、Detailed Description:类的使用注意事项
    10、其它:静态成员、静态成员函数、相关的宏

    四、中文处理
    1、不同的字符编码:由于历史原因、地区、国家、文化的不同,所使用的文字编码方式是不同的
    英语国家:ASCII,128个字符
    中国大陆:GBK23120(windows下常用的字符编码,每个汉字2字节)
    港台地区:BIG5
    2、统一字符编码
    国际标准化组织想设计出一套全世界通用的字符编码(Unicode):
    UTF-2:双字节统一字节集
    UTF-4:四字节统一字节集
    UTF-8:用一到四字节表示一个Unicode字符
    UTF-16:用二到四字节表示一个Unicode字符
    UTF-32:用四字节表示一个Unicode字符
    3、内外有别:
    内部编码:Qt应用程序中所有的控件默认使用的是UTF-16编码
    外部编码:操作系统所使用的编码(ubuntu默认使用的是UTF-8编码)

    4、解决Qt乱码问题
    Qt4.8默认的是UTF-16编码,因此必须手动设置后才能正确显示中文
    Qt5.0之后默认的是UTF-8 编码
    5、在程序最开始时设计内部编码
    QTextCodec* code=QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForTr(code);
    QTextCodec::setCodecForLocale(code);
    QTextCodec::setCodecForCStrings(code);

    五、信号与槽
    信号:就是以函数形式存在的一种信号
    槽:是一种特殊的函数,如果不配合信号,可以当作普通函数使用

    信号和槽函数必须经常连接才能协同工作
    connect(负责发送信号的对象指针
    信号函数签名:SIGNAL(函数名及参数)
    接收信号的对象指针:
    槽函数的函数名签名:SLOT(函数名及参数)

    六、自定义信号和槽
    1、在自定义的类中定义信号和槽函数一定要单独写一个头文件
    2、自定义的类必须要继承QObject类
    3、在类的开头必须要有宏:Q_OBJECT
    4、定义信号时前面要加关键字,信号以函数形式存在,但不需要实现
    signals:
    5、定义槽函数时要加public slots:关键字,可以显示调用,也可以与信号连接,由信号触发调用
    6、信号由关键字emit 触发,可以带参数也可以不带
    如果想让信号给槽发送数据,它们的参数格式必须一样

    七、控件与容器
    组成窗口界面的小工具叫控件,QLabel,QTextEdit,QPushButton

    容器用来存放控件的类
    QMainWindow:主窗口容器,由标题栏、菜单栏、工具栏、状态栏组成

  • 相关阅读:
    深入了解Go Playground
    计算机程序设计艺术学习笔记1
    Docker 和一个正常的虚拟机有何区别?
    现代计算机架构常见时延(摘自计算机系统结构--量化研究方法)
    内核开发时应该注意的点
    gem5线程相关的类—SimpleThread类,ThreadState类(src/cpu/thread_state.*)
    GEM5中模拟的系统调用(部分没实现)
    字典树(trie)
    UML类图几种关系的总结
    C,C++宏中#与##的讲解
  • 原文地址:https://www.cnblogs.com/xiwen2017/p/9551500.html
Copyright © 2020-2023  润新知