Qt的认识与相关问题的解决

Posted gumpzlc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt的认识与相关问题的解决相关的知识,希望对你有一定的参考价值。

一.Qt程序的步骤

  1. 编写源码

    a.创建目录,每一个Qt工程都要有一个单独的目录

    b.编写入口

      QApplication app(argc,argv);//创建应用程序对象

      QLabel  lab("你要写的内容");//创建标签对象,此控件专门用来实现文字

      lab.show();//显示标签,几乎所有的控件默认都是隐藏的

      return app.exec();//把程序的运算交给Qt(监控事件,等待用户操作)

      第一句和第四局的格式都是不变的;

  2. 生成工程文件:qmake -project     生成目录名.pro(此文件可以被Qt创造器打开)

  3. 生成Makefile文件 qmake 

  4. 编译的时候语法非常严格,错误信息也很多

二.查阅帮助文档

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

三.中文的处理

  1. 由于历史原因,地区,国家,文化的不同,所使用的文字编码是不同的。
      英语国家: ASCII,128个字符
      中国大陆:GBK2312(windows下常用的字符编码,每个汉字2字节)
      港台地区:BIG5
  2. 统一字符编码
      国际标准化组织设计出一套全世界通用的字符编码(Unicode):
      UTF-2:双字节统一字节集
      UTF-4:四字节统一字符集
      UTF-8:用1~4字节表示一个Unicode字符
      UTF-16:用2~4字节表示一个Unicode字符
      UTF-32:用4字节表示一个Unicode字符

3. 内外有别:
    内部编码:在Qt程序中所有的控件默认使用的是UTF-16编码
    外部编码:操作系统所使用的编码(ubntu默认使用的是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:主窗口容器,由标题栏,菜单栏,工具栏,状态栏组成

 技术分享图片

 




















































以上是关于Qt的认识与相关问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

多线程编程2.0——锁的相关认识

Qt中文乱码解决思路

解决QT编译Android程序不支持openssl问题

解决QT编译Android程序不支持openssl问题

别人的Linux私房菜(19)认识与分析日志文件

解决QT出现XXXX.dll不能加载问题