zoukankan      html  css  js  c++  java
  • 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:主窗口容器,由标题栏,菜单栏,工具栏,状态栏组成

     

  • 相关阅读:
    把csv文件导入数据库
    c# DataTable 针对xml、excel、csv导入和导出
    ASP.NET常用珍藏代码
    C# 判断图片链接是否存在
    在asp.net中长内容自动分页的实现.NET教程
    SQL代理服务启动不了SQLSERVERAGENT
    SQL重复记录查询(转载)
    在asp.net中长内容自动分页的实现.NET教程2
    根据年月来判断月里天数
    SQL字符串函数
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9551574.html
Copyright © 2011-2022 走看看