模块部分可以自己添加
SOURCES和HEADERS文件目录会自动生成
除非明白自己添加的是什么,否则不要修改pro文件内容
类名:首字母大写,单词与单词之间首字母大写
函数名,变量名:首字母小写,单词与单词之间首字母大写
运行 ctrl+r
编译 ctrl+b
整体移动 ctrl+shift+↑/↓
自动对齐 ctrl+i
帮助文档 F1
或直接打开 Qt Assistant
同名.h和.cpp之间切换 F4
show方式是以顶层方式弹出窗口控件,所有创建一个Button要显示不是用的show方法
QPushButton *btn = net QPushButton;
btn->setParent(this);
btn->setText("第一个按钮");
QPushButton *btn2 = new QPushButton("第二个按钮",this);
btn2->resize(600,400); //不写这条则会按照窗口大小去创建Button
btn2->move(100,100); //移动位置,避免与btn覆盖
setWindowTitle("第一个窗口");
setFixSize(600,400);//设置固定窗口大小

概念:当创建的对象在堆区的时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中,简化了内存回收机制
自上往下构造,父类在释放后子类自动管理释放
析构顺序是从下往上,与构造顺序相反(没有孩子才可以释放)
所以不需要操心控件的析构
信号
自定义信号,写到signals下面
返回值是void,只需要声明,不需要实现
可以有参数,可以重载
用emit进行触发
槽函数
早期Qt版本,必须写到public slots下,高级版本可以写到public或者全局下
返回值void,需要声明,也需要实现
可以有参数,可以重载
PS:当自定义信号和槽出现重载,需要使用函数指针处理(这里不是很明白)
? 信号可以连接信号
? 一个信号可以连接多个槽函数
? 多个信号可以连接同一个槽函数
? 信号和槽函数的参数类型必须一一对应
? 信号和槽的参数个数可以不一致,信号的参数个数可以多于槽函数的参数个数,多于的丢弃不接收,反之不允许
QString ->char的步骤
Qt4版本之前的信号和槽连接方式(Qt5往前兼容,反之不行)
connet(发送者,SIGNAL(信号),接收者,SLOT(槽函数));
优点:参数直观
缺点:类型不做检测
早期版本(Qt4)使用时需要在pro文件中声明
CONFIG += c++11
而Qt5自带该特性,不需专门声明
动态编译:发布的时候包含dll文件,一般需要将Qt的bin目录添加到环境变量才可以进行运行
静态编译:静态编译Qt库来链接程序,生成的文件不需要dll文件支持可直接运行,但是文件更大,缺乏灵活性
RC_ICONS = myico.icoQObject::tr( )可以实现多国语言支持,建议所有显示到界面字符串都用"tr( )"括起来,实现中文显示,但是还是建议代码编写全部使用英文
保存文件要全部使用UTF-8进行编码。避免乱码
有三种
一个程序只有一个主窗口,在main函数中打开,一般包含:
菜单栏
状态栏
工具栏
选择QDialog时候需要需要注意LayoutSizeConstraint
修改窗口标题在QWidget中的WindowTitle中
StyleSheet中添加颜色按钮,按按钮本身无效,要按“小三角”
自己写了model模块需要在"mainwindow.h"的类private中实例化
model * model
包含头文件
原文:https://www.cnblogs.com/tzbubble/p/12886451.html