Qt笔记——入门

  • Qt的介绍
    • 跨平台c++图形用户界面应用程序框架
  • Qt的框架
    • 父类(基类)子类(派生类)
    • 头文件 QApplication应用程序类
    • Qt头文件没有.h
    • 头文件和类名一样
    • 有且只有一个应用程序类的对象
    • 窗口默认是隐藏,需要人为显示
  • 项目文件
    • Q_OBJECT 信号与槽需要这个
    • pro文件中,TARGET可以更改项目生成的名字
  • 第一个Qt程序
    • 如果不指定父对象,对象和对象没有关系,独立
    • a指定b为它的父对象,a放在b的上面
    • 指定父对象,只需要父对象显示,上面的子对象自动显示
  • 父窗口和子窗口的区别(控件,部件,构件)
  • 信号和槽
    • 信号发出者(指针类型),处理的信号,信号接收者,信号处理函数
    • 自定义槽(普通函数的用法),可以是任意的成员函数,普通全局函数,静态函数
    • 槽函数需要和信号一致(参数,返回值)
    • 信号必须有signals关键字来声明
    • 信号没有返回值,但可以有参数
    • 信号就是函数的声明,只需声明,无需定义
    • 信号可以重载,Qt4可以用宏signal和slot关键字连接信号,编译的时候不对signal错误检查,槽函数需要slots:声明,Qt5如果有重载需要指针定义
    • QSting转换成可识别的字符 str.toUtf8().data()
    • 用Lamda形式可以不用写槽函数
  • 坐标系统
    • 对于父窗口,坐标系统相对于屏幕
      • 原点,屏幕左上角;x,往右;y,往下
    • 子窗口,相对于父窗口
  • 内存回收机制
    • 1,指定父对象,2直接或间接继承
    • 继承QOBJECT,对象树可以自动释放内存
    • 子对象如果是动态分配空间的new,不需要手动释放delete
  • 带菜单栏的窗口
    • 模态窗口
      • QDialog dlg;dlg.exrc();循环,不关闭窗口无法操作其他窗口
    • 非模态窗口
      • 1,QDialog dlg;dlg.show(); 会一闪而过,直接运行过这条语句
      • 2,QDialog *dlg1 =new QDialog(this); 放子函数里,会不断增加内存
      • 3,QDialog *dlg1 =new QDialog;dlg1->setAttribute(Qt::WA_DeleteOnClose);dlg1->show();不指定父对象,设置窗口关闭时,释放内存。显示。
  • 对话框
    • QMessageBox,QFileDialog
posted @ 2018-04-05 23:53  大蓝鲸  阅读(276)  评论(0编辑  收藏  举报