> 文章列表 > 【qt开发】qt了解

【qt开发】qt了解

【qt开发】qt了解

文章目录

  • qt项目创建
    • 为什么要学习Qt?
    • 学习QT应该学习什么?
    • 快捷键
    • Qt类的命名规范:
    • 函数名字:
    • Qt内置的类型,头文件和类命名同名
    • Qt中的对象树![请添加图片描述](https://img-blog.csdnimg.cn/930fb127984e428cbabbbdb42ae6d4e1.png)
    • .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:菜单栏,工具栏。
【qt开发】qt了解

#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进行操作【qt开发】qt了解

【qt开发】qt了解
QPushButton(QWidget *parent = 0) //指定一个父窗口
QPushButton(const QString &text,QWidget *parent = 0) //还可以设置按钮显示内容
QPushButton(const QString &text,QWidget *parent = 0) //还可以给按钮加上图片
【qt开发】qt了解

  • b2 = new QPushButton(“hello,qt”,this); //必须指定父对象,才可以显示再父窗口类中,b2不用回收,由系统自动回收
    【qt开发】qt了解
    Qwidget Class 继承自Object类
    定时器也是Object的派生类,不属于窗口类

Qt中的对象树【qt开发】qt了解

当父对象要析构的时候,所有的子对象都已经被析构掉了

.pro文件中,各字符表示的意思

【qt开发】qt了解
【qt开发】qt了解
遇到的问题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");
}