文章目录
- qt项目创建
- 为什么要学习Qt?
- 学习QT应该学习什么?
- 快捷键
- Qt类的命名规范:
- 函数名字:
- Qt内置的类型,头文件和类命名同名
- Qt中的对象树![请添加图片描述]
- .pro文件中,各字符表示的意思
qt项目创建
1.创建路径不能有中文。
qt开发工具:qtcreator
优势:
1.跨平台,几乎支持所有的平台。(一次编码,随处编译)
2.接口简单,容易上手
3.开发效率高,能够快速构建应用程序。
4.很好的社区氛围,市场份额逐年上升。
5.可以进行嵌入式开发。
qt的成功案例:
1.linux桌面环境
2.wps office
3.skype 聊天软件
4.谷歌地球
5.VLC多媒体播放器
mft是windows开发
qt分装了window的API
为什么要学习Qt?
1.锻炼编程能力,GUI编程比后台更能锻炼人,除了核心数据处理,需要更好的协调界面,同时懂得前端和后台编程,才能写出更好的程序。
2.为了更好的使用C++,很多游戏,后台服务器都是使用c++实现的,学习QT框架能够为以后的工作打下一个良好的基础。
总结:学习Qt是为了更好的使用C++。而且可以拓展个人能力。
学习QT应该学习什么?
1.学会帮助文档的使用。F1
2.掌握qt中常用的类,以及其使用方法。(按钮类,标签类,编辑框类)
记住类的名字就好了,不需要记住方法。知道类是要干嘛的就行了。
快捷键
1.帮助文档:F1
2…h文件和对应的.cpp文件切换时 :F4
3.编译运行:ctrl + R ,只是编译 ctrl+B
4.函数声明和定义切换:F2
5.查找替换关键字:ctrl+f
6.注释ctrl + /
Qt类的命名规范:
单词的首字母必须时大写,单词和单词之间直接连接,无需连接符
如:MyClass,QpushButton
class MainWindow
{
};
函数名字:
变量名:第二个单词开始(不是第一个单词开始),首字母大写,单词和单词之间直接连接,无需连接符。
如:
void setFlag();
QString getText();
bool isDrow();
Qt内置的类型,头文件和类命名同名
每一个类,对应一个头文件。
#include 字符串类
QString str;
#include
QWidget w;
创建一个简单的窗口
版本控制工具 git svn vss
QWidget: 所有窗口类的父类。
QDialog :顶层窗口(第一个打开的窗口,对话框窗口) ,只有一个关闭按钮。
QMainWindow:菜单栏,工具栏。
#include "mywidget.h" //添加的窗口类,
//在qt中类名和头文件名相同
#include <QApplication> //应用程序类:比如创建好的窗口的拖动,放大缩小等
int main(int argc, char *argv[])
{
//应用程序类,在每一个qt程序中有且仅有一个
QApplication a(argc, argv);
//窗口类,创建出来之后默认不显示
myWidget w; //如果要对 窗口操作,就必须对 w进行操作
//显示窗口
w.show();
//走到后台进行了一个消息(里面就是一个死循环,收到某一个信号就会结束,结束对窗口的监听)
return a.exec();
}
1.首先需要一个应用程序类
2.需要一个窗口类
myWidget w; //如果要对 窗口操作,就必须对 w进行操作
QPushButton(QWidget *parent = 0) //指定一个父窗口
QPushButton(const QString &text,QWidget *parent = 0) //还可以设置按钮显示内容
QPushButton(const QString &text,QWidget *parent = 0) //还可以给按钮加上图片
- b2 = new QPushButton(“hello,qt”,
this
); //必须指定父对象,才可以显示再父窗口类中,b2不用回收,由系统自动回收
Qwidget Class 继承自Object类
定时器也是Object的派生类,不属于窗口类
Qt中的对象树
当父对象要析构的时候,所有的子对象都已经被析构掉了
.pro文件中,各字符表示的意思
遇到的问题1:undefined reference to `vtable for MyButton’
处理方法就是重新qmake一下,也可以修改pro文件进而引发重新生成Makefile。
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//初始化
/*
* 如果窗口要依赖于一个窗口,需要给该窗口指定一个父类
* 父窗口显示的时候,子窗口也会随之显示
*/
b2 = new QPushButton("hello,qt",this); //b2不用回收
b2->setText("姓名");
b2->show(); //窗口类创建出来的时候是默认不显示的
b2->resize(200,80);
//还可以
b1.setParent(this);
b1.setText("年龄");
//修改按钮的位置 --移动
//窗口的坐标系 ,原点在左上角,X轴向右递增,y向下递增
b1.move(200,0);//窗口也会跟着增大
//如何指定创阔的大小
b1.resize(200,80);
//内存自动回收
//1.从Object派生的类,1.直接 2.间接
//1.指定父类,父亲析构的时候,先析构其孩子
//创建自定义的按钮对象,首先需要包含头文件
MyButton *btn = new MyButton(this); //提供的构造函数只有一个参数
btn->setText("性别");
btn->resize(200,80);
btn->move(400,0);
//设置窗口的标题
this->setWindowTitle("史倩钰是猪猪");
this->resize(1000,800);
//使得窗口的大小不能变化
this->setFixedSize(1000,800);
//自定义窗口图标
// this->setWindowIcon("/home/stu/qtproject/beauty.jpg");
}