- QT的优点:跨平台,接口简单/多,简化了内存回收机制(对象树)
- 注意点: 项目名称不能有空格和中文,不能有中文路径
- QT使用c++面向对象编程,有创建窗口三大基类:QWidget(空白窗口)、QMainWindow(有菜单栏工具栏等窗口)、QDialog(对话框)
- Main函数中
1.应用程序对象Qt中有且只有一个
2.窗口对象
3.窗口显示
4.进入事件循环阻塞功能等待操作
5. pro文件中
Qt包含的模块
1.对象树:当创建的对象 指定的父亲是由QObject或者Object派生的类时候,这个对象被加载到对象树上,当窗口关闭掉时候,树上的对象也都会被释放,构造函数的e传递则是挂载在对象树上
2.Qt中信号和槽
实现对象与对象之间的通信,当一个对象发生改变时发送一个信号通知另一个对象执行一个函数,这个函数称为槽函数
发送信号用emit关键字
信号: 返回值是void+只需声明不需要实现+可以重载
槽函数: 返回值是void+需声明也需要实现+可以重载
信号与槽的连接分为自动连接和手动连接(conne(发送信号的对象,发送的信号,接收信号的对象,接收方法,连接类型))
连接类型
直接连接:槽函数会在信号发送的时候直接被调用,槽函数运行与信号发送者所在的线程
排队方式:槽函数运行与信号接收者所在线程,发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入时间循环后,槽函数才回被调用
自动方式:默认的方式,如果接收者和发送者在同一个线程则采用直接连接,如果不在同一个线程则采用自动连接
阻塞排队:槽函数调用时机与排队方式一致,不过发送完信号后,发送者所在线程会阻塞,接收者和发送者绝不能在同一个线程,否则会死锁
唯一连接:这个flag可以通过按位或(|)与以上四个结合在一起使用。当flag设置,当某个信号和槽已经连接时,再进行重复的连接就会失败,也就是为了避免重复连接
QSS称为QtStyleSheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制,QSS大量参考了CSS的内容,只不过比CSS弱,主要体现在选择器要少使用方法
1.右键选择控件,改变样式表 2.ui->控件名称->setStyleSheet("QpushButton{" "color:red;" "border:none;"}")
Qt文件编程
1.操作普通文件bool QFile ::Open(OpenMode mode)删除文件bool QFile ::remove() 读取文件数据QByteArray QIODevice::readAll() 写文件qint64 QIODevice::write(const char *data) 关闭文件void QFileDevice ::close()
2.操作配置文件