//qt学习笔记:
//12_7
//跨平台,完全面向对象,容易扩展,容易组建编程。
//QWidget 和 QMainWindow 和 QDialog 之间的关系。
//QWidget是基类,QMainWindow 和 QDialog 是子类。
/*
QWidget 是一个大的空窗口。
QMainWindow 包含一些状态栏,例如文件、编辑等。
QDialog 对话框
*/
/*
项目管理:
团体开发软件时:git,vss,svn
svn:最常用的工作:update;提交之前先更新,防止冲突;
若出现冲突,就会出现:A写的----;B写的----
当协调解决问题后,点击solve提示svn解决了冲突。
会出现的bug:lock; svn可能会自锁,不能进行任何操作。
此时输入:unlock;
*/
/*
pro文件:相当于sln文件;
*/
//一个问题的解决:https://blog.csdn.net/naturly/article/details/81390377
#include "mywidget.h"
#include <QApplication> //包含头文件 应用程序的头文件;
//main 函数中的操作
//程序的入口 argc命令行变量数量 argv命令行变量数组;
int main(int argc, char *argv[])
{
//应用程序对象 a,Qt中 有且仅有一个应用程序对象;
QApplication a(argc, argv);
//创建一个 myWidget 对象w。myWidget基类 QWidget
myWidget w;
//窗口默认是不会弹出的,如果想弹出 调用show方法
w.show();
//a.exec()进入消息循环机制,相当于C++ system("pause");
return a.exec();
}
//一个问题的解决方法:https://blog.csdn.net/wxf2012301351/article/details/52182769
//pro的介绍:
#-------------------------------------------------
#
# Project created by QtCreator 2018-12-07T10:14:28
#
#-------------------------------------------------
QT += core gui // qt包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于函数,大于4版本包含widgets模块;
TARGET = 123.exe //生成的.exe可执行文件的名称---后期要修改程序名可以在这个里面修改;
TEMPLATE = app //模板 ---- 应用程序
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ //源文件
main.cpp \
mywidget.cpp
HEADERS += \ //头文件
mywidget.h
//********************************************************************************************************************************************
//QT中的命名规范以及快捷键;
//类名:首字母大写 单词与单词之间 首字母大写
//函数、变量名:首字母小写,单词与单词之间首字母大写;
//快捷键: ctrl + R
//编译: ctrl + B
//查找: ctrl + F
//帮助文档: F1
//字体缩放 ctrl + 鼠标缩放
//自动对齐 ctrl + i
//整行移动 ctrl + shift + ↑ 或者 ↓
//同名之间的 .h .cpp切换 F4
//********************************************************************************************************************************************
//设置窗口和设置按钮
#include "mywidget.h"
#include <QPushButton>
myWidget::myWidget(QWidget *parent)
: QWidget(parent) //初始化列表;----不要和继承弄混;
{
//按钮:
//第一种按钮方法:
QPushButton * btn = new QPushButton;
//btn -> show(); //show是用顶层方式弹出,如果想在mywidget窗口中显示,就需要一来mywidget窗口;
//设置父亲
btn->setParent(this);//this指针
//设置文件
btn->setText("德玛西亚");//将 char*隐式类型转换为QString;
QPushButton * btn2 = new QPushButton("第二个按钮",this);
//窗口大小和按钮大小差不多。这种方式设置,窗口会按照btn2大小设置。
//可以重置窗口的大小。
this -> resize(600,400);
//第二个按钮会覆盖第一个按钮,移动第二个按钮:
btn2->move(100,100);
//按钮是否能够重置大小?
btn2->resize(50,50);
//如何重置窗口的标题:
//this下面的方法,可以不写this:
setWindowTitle("qt第一个窗口");
//设置固定的窗口大小:
setFixedSize(600,600);
}
myWidget::~myWidget()
{
}
//*****************************************************************************************************************************************************
//************************************************************************************
(重点)
//qt的优点:一定程度下简化了内存回收机制。
//对象树的概念:
//qt如何释放内存的?
//所有new出来的对象会在窗口关闭后进行自动释放;
对象树的概念就是qt提供的内存回收机制。通常指定一个new的变量的parent为this来设定。
//*************************************************************************************
qt中的坐标系:
从左上角开始为(0,0)原点,向右为x轴正向,向下为y轴正向;
//*************************************************************************************