文章目录
1、在pro文件里
.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。.pro文件的写法如下:
注释
从“#”开始,到这一行结束。
模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app; app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
#指定生成的应用程序名:
TARGET = QtDemo
#工程中包含的头文件
HEADERS += include/painter.h
#工程中包含的.ui设计文件
FORMS += forms/painter.ui
#工程中包含的源文件
SOURCES += sources/main.cpp sources
#工程中包含的资源文件
RESOURCES += qrc/painter.qrc
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。
#配置信息
CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG += c++11 //使用c++11的特性
在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。
pro文件里注释是用 #
QT += core gui #包含的模块
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets#大于4版本以上的 包含widget模块
TARGET = tcpTestServer #目标 生成的.exe程序的名称
TEMPLATE = app # 模板 应用程序模板 Application
SOURCES += main.cpp\ # 源文件
mainwindow.cpp
HEADERS += mainwindow.h # 头文件
FORMS += mainwindow.ui
2、 一些命名规范
//命令规范
//类名 首字母大写 单词和单词之间首字母大写
//函数名 变量名称 首字母小写 单词和单词之间首字母大写
//快捷键
//注释和取消注释都是 ctrl + /
//运行 ctrl + r
//编译 ctrl+b
//ctrl + f 查找
//自动对齐 ctrl +i
//同名之间的**.h和.cpp文件之间的切换** F4
//帮助文档 F1
3、在.cpp文件里进行一些基础的设置
myWidgetcpp
#include "mywidget.h"
#include "ui_mywidget.h"
#include<QPushButton> //按钮控制的头文件
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::myWidget)
{
//创建第一个按钮
QPushButton * btn1=new QPushButton;//创建一个按钮并显示
btn1->show();//show以顶层的方式弹出控件
btn1->setParent(this);//让btn对象 依赖在myWidget窗口中 this指针指向当前对象 myWidget
//让按钮里显示指定的文字
btn1->setText("Mr.liang 的第一个按钮");
//创建第二个按钮 按照控件的大小创建窗口
QPushButton * btn2=new QPushButton("第二个按钮",this);
btn2->show();
//移动btn1的位置
btn1->move(100,100);
//重新设置按钮的大小
btn1->resize(200,30);
//重置窗口的大小 此时用户是可以随意拖拽窗口的大小的
resize(555,555);
//设置固定的窗口大小
setFixedSize(600,400);
//设置窗口标题
setWindowTitle("Mrliang");
//ui->setupUi(this); //把这行代码注释掉可以自定义窗口title
}
myWidget::~myWidget()
{
delete ui;
}
设置好的窗口界面这样的:

qt中的对象树

4、添加mypushbutton.h 和mypushbutton.cpp文件进行父类调用子类的实现,此时的父类是mywidgetqs
其实主要是通过引入对象树的概念,来讲解父类和子类的构造和析构顺序:
构造:先父类再子类
析构:先子类再父类
此时文件包含:
mypushbutton.h
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H
#include <QPushButton>
class MyPushButton : public QPushButton
{
Q_OBJECT
public:
explicit MyPushButton(QWidget *parent = nullptr);
~MyPushButton();//析构函数
signals:
};
#endif // MYPUSHBUTTON_H
mypushbutton.cpp
#include "mypushbutton.h"
#include<QDebug> //包含打印信息的头文件
MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
qDebug()<<"我的按钮类构造调用";
}
MyPushButton::~MyPushButton()
{
qDebug()<<"我的按钮析构"

&spm=1001.2101.3001.5002&articleId=122244716&d=1&t=3&u=b1c2346a8acd4c5bbdbc6d053f62f4d2)
2604

被折叠的 条评论
为什么被折叠?



