Qt-Day01-学习笔记

1. Qt 简介

Qt是一个跨平台的C++图形用户界面应用程序框架. 他为应用程序开发者提供建立艺术级图形界面所需的所有功能.他是完全面向对象的,很容易扩展,并且允许真正的组件编程.

2. Qt Creator

- Qt的历史

1991年 Qt最早由奇趣科技开发;
1996年 进入商业领域,他是目前最流行的Linux桌面环境KDE的基础;
2008年 奇趣科技被洛基亚公司收购,Qt成为诺基亚旗下的编程语言;
2012年 Qt又被Didia公司收购;
2014年4月 跨平台的集成开发环境Qt Creator 3.1.0 发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS,Android,WP等各平台的全面支持.
现在最新为Qt6.0.0

- Qt的特性

图形界面开发(兼容js).
跨平台,C++,到处编译,到处运行.
开源(诺基亚),社区支持.

  • Qt的下载连接
    Index of /archive/qt
    Index of /development_releases/vsaddin

博主使用的是:
qt-opensource-windows-x86-msvc2015-5.7.1

- Qt的安装

一般傻瓜式下一步,默认安装(建议组件全部选中)
Qt-Day01-学习笔记_第1张图片

3. Qt 工程

新建一个项目可以在左侧的"欢迎"界面,点击"New Project",或者在顶部的文件菜单中点击 “点击新建文件或项目”;
Qt-Day01-学习笔记_第2张图片

Qt-Day01-学习笔记_第3张图片
弹出New Project对话框,选择Qt Widgets Application;

填好项目名称和创建路径之后,然后点击"下一步"按钮;(注意:项目的名称不能是中文)
Qt-Day01-学习笔记_第4张图片
选择编译套件;
Qt-Day01-学习笔记_第5张图片
MSVC是visual studio的编译器,MinGW是Qt Creator的编译器.

Qt-Day01-学习笔记_第6张图片
系统会默认添加一个继承自CMainWindow的类,可以在此修改类的名字和基类.默认的基类有QMainWindow,QWidget,QDialog三个,我们可以选择QWidget(类似于空窗口),初次学习,这里我们可以先创建一个不带UI的界面,继续点击下一步;
Qt-Day01-学习笔记_第7张图片

  • 参考教程:

Visual Studio IDE是什么?Vs怎么安装,如何使用
Qt5.14.2超详细安装教程,不会来打我~
[教程]VS2019配置QT5.142

4. Qt 的第一个程序(类,组件)

#在使用Qt向导生成的应用程序.pro

QT       += core gui        //包含的模块

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets         //大于Qt4版本,才包含widget模块

TARGET = firstWindow        //应用程序名,生成.exe程序文件

TEMPLATE = app              //模板类型,应用程序模板

...

SOURCES += main.cpp\                   //源文件
        mainwindow.cpp

HEADERS  += mainwindow.h               //头文件

Qt-Day01-学习笔记_第8张图片
.pro就是工程文件(project),他是qmake自动生成的用于生产makefile的配置文件.
Qt-Day01-学习笔记_第9张图片

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 

class myMainWindow : public QMainWindow
{
    Q_OBJECT

public:
    myMainWindow(QWidget *parent = nullptr);
    ~myMainWindow();

private:
    QPushButton* btn;
    QPushButton b;

};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include
//解决中文乱码
#pragma execution_character_set("utf-8")

//QWidget是能够在屏幕上显示一切的父类



myMainWindow::myMainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //设置当前窗口 的 标题和大小
    this->setWindowTitle("这个窗口是玩按钮的");
    this->resize(400,400);

//----------------------------------------------------------------------------//

    //什么时候创建的按钮对象?  程序运行的时候,创建按钮
    btn=new QPushButton(this);  //(1).创建对象的时候为他指定父对象

    //btn->setParent(this);     //(2).设置 w对象为 *bt对象的父对象


    //QString类是Qt里面优化的string类,主要用来做对字符串的操作
    btn->setText("^*^");
    btn->resize(60,60);
    btn->move(100,100);


    //btn->show();

    b.setText("确定");
    b.setParent(this);
    b.resize(50,30);


/*------------------------------------------------------------------------------*/


    //信号与槽的机制

    /*什么是信号与槽? 比如发短信
        1>谁发;                   信号的发送者
        2>发送的什么内容;           发送的信号
        3>谁收;                   信号的接收者
        4>收到干嘛.                处理的槽函数

        信号  属于信号的发送者,槽函数    属于信号的接收者.


        编程? 描述事物
            事   算法        函数
            物   数据结构     对象
    */

    connect(btn,                        //发送者           &
            &QPushButton::pressed,      //&类名::信号名
            this,                       //接收者           对象取地址
            &myMainWindow::close);      //&类名::槽函数
}

myMainWindow::~myMainWindow()
{

}

Qt-Day01-学习笔记_第10张图片
Qt-Day01-学习笔记_第11张图片
点击"*"按钮后,窗口马上消失.

  • 参考资料:

[教程]Qt 5.14.2创建第一个项目(简单使用)

Qt第一个项目代码分析(main.cpp,Widget.h,Widget.cpp)

5. 总结

Qt-Day01-学习笔记_第12张图片

1> Qt是一个跨平台的C++图形用户界面应用程序框架;
2> Qt 工程的路径和工程名不能是中文;
3>

  • Qwidget是能够在屏幕上显示的的一切组件的父类;
  • QMainwindow是一个为用户提供主窗口的程序的类;
  • QDialog对话框分为模态对话框和非模态对话框,是GUI程序中不可缺少的组成部分.

4>如何解决运行后出现的中文乱码?
在头文件出加上:#pragma execution_character_set(“utf-8”)

你可能感兴趣的:(学习笔记,qt)