当前位置:   article > 正文

qt学习笔记1:创建一个qt项目及一些基础知识_qt 创建新项目

qt 创建新项目

1 新建第一个项目

New Project -->qt widges application
qt
给项目创建名称,名称不能有中文和空格,创建路径中也不能有中文路径,不会报错但是运行时会报错
在这里插入图片描述
再下一步,到Kits,中文构建套件,用于选择编译套件,
在这里插入图片描述
下一步,类的信息,在创建一个新的qt项目时,都会默认地去创建一个类,这个类就是主窗口的类。其中基类有三种选择
在这里插入图片描述
其中QWidge是QMainWindow和QDialog的父类,QWidge是一个最简单的窗口(Widge就是窗口的意思),QMainWindow多了菜单栏,状态栏等,QDialog就是对话框;
首先我们来创建一个基类,创建一个myWidge类,这是会发现系统自动给创建了.h和.cpp
在这里插入图片描述
下边的创建界面,会有一些设计界面,里面的控件可以直接进行拖拽,一开始学习可以给它取消,先用代码去实现一些功能会更合适
下一步到汇总的界面,添加到版本控制系统,适用于团队协作svn vss git;可以看到左下角,是创建完这个项目之后会添加哪些文件,
在这里插入图片描述

.pro工程文件,类似于.sln文件,双击就能打开整个工程;main.cpp程序入口,另外两个是窗口的.h文件和.cpp文件

这之后按理就应该正常显示.h .cpp等文件,但我这边只有.pro文件,
在这里插入图片描述
……网上找了很多方法,都不对,最后定位到编译套件这一块,当时选择的时候我以为随便选一个就行,然后重新建工程,把默认的都保留了,再打开就都有了
在这里插入图片描述
小插曲,继续~

先看main函数程序入口

#include "mywidget.h"
#include <QApplication>//包含一个应用程序的类的头文件

//main程序入口  argc命令行变量的数量  argv命令行变量的数组
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//a 是应用程序对象,在qt中应用程序对象有且只有一个
    myWidget w;//实例化一个窗口对象,它的父类叫QWidge
    w.show();//窗口对象默认不会显示,必须要调用show方法才能显示窗口

    return a.exec();//让应用程序对象进入消息循环 不会一闪而过, 代码会阻塞到这一行,后面的代码不会被执行
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

显示一个窗口:
在这里插入图片描述

工程文件的学习

在这里插入图片描述

.h文件

在这里插入图片描述

快捷键

运行:ctrl+r
编译:ctrl+b
自动对齐:ctrl+i
同名之间.h和.cpp的切换:F4

QPushButton创建

头文件:QPushButton
qmake: QT+= WIDGES
在这里插入图片描述按钮就在父窗口中了, 用btn的方法进行显示文本啥的
在这里插入图片描述第二种方法创建按钮
在这里插入图片描述

但得到的窗口大小会按着控件大小来, 一般来说这种方法不好
在这里插入图片描述
但是我们可以重置窗口的大小, 用resize(w, h);
还有一些操作,比如移动按钮,设置窗口标题,设置固定窗口

对象树

当QT中创建对象的时候会提供一个Parent对象指针,具体作用:
当创建一个QObject对象树时, 会看到QObject的构造函数接收一个QObject指针作为参数, 这个参数就是parent即父对象指针,这相当于在创建QObject对象时可以提供一个其父对象,我们创建的这个QObject对象会自动添加到其父对象的children()列表
当父对象析构时,这个列表中的所有对象会被析构,注意这里的父对象不是继承意义上的父对象, 这种机制在GUI程序设计中相当有用,如一个按钮有一个快捷键对象作为其子对象,那么当我们删除按钮的时候, 快捷键也应当被删除。

举例在原来myWidge上派生一个子类mypushButton,并调用子类的方法
在已有工程上添加C++新文件,继承QPushButton
在这里插入图片描述
myWidge中创建一个自己按钮的对象
在这里插入图片描述
其中 myBtn->setParent(this);就是设置到对象树中,这样当释放窗口的时候,下面的子类也都会被释放掉
释放顺序和C++一样,构建先父类再子类,但释放先子类再父类,但是他的打印顺序相反
在这里插入图片描述

因此qt一定程度上简化了内部回收机制

qt中的坐标系

(0,0)在左上角,X向右增大,Y向下增大

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/118096
推荐阅读
相关标签
  

闽ICP备14008679号