初探---Qt

这篇具有很好参考价值的文章主要介绍了初探---Qt。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、介绍Qt

二、软件安装 

三、QT工具介绍 

四、Assistant帮助文档的使用 

 五、设计师界面的介绍

​编辑 六、QT工程项目各文件初始程序的介绍

1> 配置文件:.pro文件

2> 头文件

3> 源文件

4> 主程序

5> 各文件之间调用方式

七、第一个QT界面 

1> 创建自定义类时需要指定父类

2> 第一个界面的相关操作 

设计一个界面如下图

​编辑 widget.h文件

main.cpp文件

widget.cpp文件

 常用类与组件

一、介绍Qt

1. QT主要用于图形化界面的开发, QT是基于C++编写的一套界面相关的类库,

        进程线程库,网络编程的库,数据库操作的库,文件操作的库..... ​

2. 学习QT,

        掌握QT中的类库是做什么,如何使用这个类库

        类库实例化对象(构造函数) --> 学习类库中方法(函数)的使用 --> 后台逻辑的实现 ​

3. QT是一个跨平台的GUI图形化界面开发工具

4. QT的使用场合

        汽车仪表盘

        打印机

        医疗器械

        自动化的大型设备

5. QT的优点

        1.跨平台,具有较为完备的图形开发库,你所能想到的的图形的实现基本都有,比window的MFC的库更强大。所以很多之前做桌面开发用MFC的都转了Qt。

        2.接口的封装性好,易上手,学习QT框架对学习计算机图形框架有很重要的参考意义。

        3.Qt内部基本上有一套自己的简易好用的内存回收机制,对提高C++水平有帮助。

        4.有很好的社区环境,市场份额在缓慢上升。

        5.轻量级的开发环境,可以做嵌入式开发

二、软件安装 

https://download.qt.io/archive/online_installers/4.2/

Windows : qt-unified-windows-x86-4.2.0-beta-online.exe

linux : qt-unified-windows-x86-4.2.0-beta-online.run

MAC : qt-unified-windows-x86-4.2.0-beta-online.dmg 

三、QT工具介绍 

1. Assistant      --->      QT类库的帮助手册的工具 ​

2. Designer       --->     用来设计图形化界面 对应的界面

        文件为***.ui (ui文件中的内容是一种标记性的语言) ​

3. uic.exe ---> 将***.ui文件转换为标准的C++的代码 ui_***.h         C:\Qt\5.15.2\mingw81_64\bin\uic.exe

        在cmd终端下输入以下命令:

        C:\Qt\5.15.2\mingw81_64\bin\uic.exe designer.ui -o ui_designer.h ​

4. moc.exe ---> 元对象编辑器工具

        C:\Qt\5.15.2\mingw81_64\bin\moc.exe

        将QT中非标准的信号和槽,转换为标准的C++的代码 ​

5. rcc.exe ---> 资源管理器

        C:\Qt\5.15.2\mingw81_64\bin\rcc.exe

        将QT资源文件(图片,音频文件,视频文件),转换为标准的C++代码 ​

6. qmake ---> 工程管理的工具

        QT工程文件的后缀为***.pro工程文件,

        qmake工具可以根据***.pro文件,生成Makefile文件,

        通过Makefile文件编译C++的代码。 ​

7. QTcreater --> QT集成开发环境工具(IDE)

        将上边的所有的工具都集成到一起了。

四、Assistant帮助文档的使用 

初探---Qt,转世重生,qt,开发语言

1> qt中的类名就是头文件的名字

2> 有些类需要在.pro文件中引入对应的类库后,才能引入头文件,进而对类的使用

3> qt中的类,大部分都是多级继承关系

        QLineEdit --> QWidget --> QObject and QPaintDevice

        QPushButton --> QAbstractButton --> QWidget --> QObject and QPaintDevice

        QLabel --> QFrame --> QWidget --> QObject and QPaintDevice

 五、设计师界面的介绍

初探---Qt,转世重生,qt,开发语言

 六、QT工程项目各文件初始程序的介绍

1> 配置文件:.pro文件

QT       += core gui sql network
# QT工程所需的类库 core是核心库  gui图形化界面相关类库


greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#版本超过4.0,会加上widgets


CONFIG += c++11
#该编译器支持C++11后的版本


# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked 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 it uses 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 \
    mywnd.cpp


#管理头文件
HEADERS += \
    mywnd.h


#管理ui文件
FORMS += \
    mywnd.ui


# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

2> 头文件

#ifndef MYWND_H
#define MYWND_H    //防止文件重复包含


#include <QWidget>        //QWidget类所在的头文件,父类头文件


QT_BEGIN_NAMESPACE
namespace Ui { class MyWnd; }          //命名空间的声明
QT_END_NAMESPACE


//定义属于自己的类  MyWnd是类名,公共继承自QWidget
class MyWnd : public QWidget
{
    Q_OBJECT        //信号与槽的元对象


public:
    MyWnd(QWidget *parent = nullptr);         //构造函数的声明,有一个默认参数的形参
    ~MyWnd();                           //析构函数额声明


private:
    Ui::MyWnd *ui;             //后期可以通过ui指针找到ui界面上拖拽出来的组件
};
#endif // MYWND_H

3> 源文件

#include "mywnd.h"              //自己的头文件
#include "ui_mywnd.h"          //ui界面对应的头文件


MyWnd::MyWnd(QWidget *parent)            //构造函数的定义
    : QWidget(parent)                  //显性调用父类的构造函数完成对子类从父类继承下来成员的初始化工作
    , ui(new Ui::MyWnd)                //对自己类中的指针成员开辟空间
{
    ui->setupUi(this);         //给拖拽出来的组件实例化空间


}


MyWnd::~MyWnd()            //析构函数的定义
{
    delete ui;             //释放ui指针的内存
}

4> 主程序

#include "mywnd.h"           //图形化界面的头文件


#include <QApplication>           //应用程序的头文件


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);       //实例化一个应用程序的对象,调用的是有参构造


    MyWnd w;               //在栈区实例化自定义类的对象
    
    w.show();                //调用show函数,展示图形化界面,该函数是父类提供的,直接用即可
    


    return a.exec();        //为了阻塞界面不被关闭,等待相关事情发生
                            //等待信号与槽、事件处理、等待用户操作
}

5> 各文件之间调用方式

初探---Qt,转世重生,qt,开发语言

七、第一个QT界面 

1> 创建自定义类时需要指定父类

初探---Qt,转世重生,qt,开发语言文章来源地址https://www.toymoban.com/news/detail-685634.html

2> 第一个界面的相关操作 

  this->resize(QSize(800,600));       //使用匿名对象,调用重新设置尺寸函数


    qDebug() << "size = " << this->size();


    qDebug()<<"width = "<<this->width();        //输出组件宽度
    qDebug()<<"height = "<<this->height();      //获取高度


    //2、设置尺寸最值
    this->setMaximumSize(1000,800);       //设置最大尺寸
    this->setMinimumSize(400,300);         //设置最小尺寸
    this->setFixedSize(540, 410);          //设置固定尺寸


    //3、窗口标题
    qDebug()<<this->windowTitle();
    this->setWindowTitle("My First Window");
    qDebug()<<this->windowTitle();


    //4、设置窗口的icon
    this->setWindowIcon(QIcon("C:\\Users\\xxxxx\\xxx.png"));


    //5、设置背景色,一般使用样式表完成
    this->setStyleSheet("background-color:skyblue;");


    //6、设置窗口透明度
    this->setWindowOpacity(0.8);


    //8、设置纯净窗口
    this->setWindowFlag(Qt::FramelessWindowHint);


    //9、移动窗口位置
    this->move(50,100);

设计一个界面如下图

 widget.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QDebug>
#include <QIcon>
#include <QLabel>
#include <QPixmap>
#include <QLineEdit>
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
};
#endif // WIDGET_H

main.cpp文件

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

widget.cpp文件

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setFixedSize(900, 800);          //设置固定尺寸
    //3、窗口标题
    this->setWindowTitle("My First Window");
    //4、设置窗口的icon
    this->setWindowIcon(QIcon("C:\\Users\\29154\\Desktop\\23HQYJ\\C++\\Qt_project\\my_first_window\\icon\\wodepeizhenshi.png"));
    //5、设置背景色,一般使用样式表完成
    this->setStyleSheet("background-color:rgb(226,227,228);");
    //标签
    QLabel *lab1 = new QLabel(this);
    lab1->setGeometry(0, 0, 900, 458);
    lab1->setPixmap(QPixmap("C:\\Users\\29154\\Desktop\\23HQYJ\\C++\\Qt_project\\my_first_window\\icon\\logo1.png"));
    lab1->setScaledContents(true);

    QLabel *lab2 = new QLabel(this);
    lab2->setGeometry(270, 500, 40, 40);
    lab2->setPixmap(QPixmap("C:\\Users\\29154\\Desktop\\23HQYJ\\C++\\Qt_project\\my_first_window\\icon\\userName.jpg"));
    lab2->setScaledContents(true);
    
    QLabel *lab3 = new QLabel(this);
    lab3->setGeometry(270, 580, 40, 40);
    lab3->setPixmap(QPixmap("C:\\Users\\29154\\Desktop\\23HQYJ\\C++\\Qt_project\\my_first_window\\icon\\passwd.jpg"));
    lab3->setScaledContents(true);

    //行编辑器
    //1、构造一个行编辑器,构造时给定父组件
    QLineEdit *edit1 = new QLineEdit(this);
    QLineEdit *edit2 = new QLineEdit(this);
    edit1->setPlaceholderText("QQ/手机/邮箱");        //设置编辑器的占位文本
    edit2->setPlaceholderText("密码");
    edit1->resize(200,40);            //设置尺寸
    edit2->resize(200,40);
    edit1->move(350,500);       //移动位置
    edit2->move(350,580);
    edit2->setEchoMode(QLineEdit::Password); //设置回显模式

    //按钮组件
    QPushButton *btn1 = new QPushButton("登录", this);
    QPushButton *btn2 = new QPushButton("取消", this);
    btn1->resize(110,60);
    btn1->move(320,650);
    btn2->resize(110,60);
    btn2->move(450,650);
    btn1->setIcon(QIcon("C:\\Users\\29154\\Desktop\\23HQYJ\\C++\\Qt_project\\my_first_window\\icon\\login.png"));
    btn2->setIcon(QIcon("C:\\Users\\29154\\Desktop\\23HQYJ\\C++\\Qt_project\\my_first_window\\icon\\cancel.png"));
}

Widget::~Widget()
{
}

 常用类与组件

到了这里,关于初探---Qt的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【VisualStudio】基于 Visual Studio 使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月15日
    浏览(66)
  • 【Visual Studio】使用 C++ 语言,配合 Qt,开发了一个串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 我要使用的功能比较简单,主要包含扫描串口、打开串口、发送数据、接收数据、暂停按钮、停止按钮,因此接下里将围绕这几个功能依次更新。 我的工程项目名字叫 “GUI”。

    2024年02月11日
    浏览(68)
  • 【Visual Studio】报错 C2653,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 这个 Bug 是我做这个工程时遇到的:【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面。 使用 C++ 语言,配合 Qt 开发串口通信界面,在添加 Widget 做

    2024年02月11日
    浏览(52)
  • 【Visual Studio】报错 ASSERT: “i >= 0 && i < size()“,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 这个 Bug 是我做这个工程时遇到的:【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面。 使用 C++ 语言,配合 Qt 开发串口通信界面,在调试动态绘图

    2024年02月11日
    浏览(54)
  • 【QtQuick3D学习】初探数字人,使用Qt Design Studio导入Blender模型,并驱动形态键Shape Key——基于C++和Cmake

    首先使用Blender创建数字人模型,然后导出为fbx格式 没有模型的可以下载文章上方资源,或者直接点击下方链接下载 数字人demo模型fbx 然后使用Qt Design Studio创建demo工程,得到下面的运行结果 然后左下角切换到Assets窗口,点击+符号,导入从Blender导出的模型 导入成功后,可以

    2024年02月03日
    浏览(37)
  • <QT开发> QT开发工具-之-QT应用程序打包

    <QT开发> QT开发工具-之-QT应用程序打包 笔者为什么会写这篇文章呢?这是因为,笔者使用windows QT开发了一个测试工具。目的是通过TCP/IP测试其它应用程序。首先这个QT程序是笔者自己开发的,所以笔者的电脑当然是可以运行这个QT程序的,但是想要这个QT程序在其它同事的

    2024年02月12日
    浏览(134)
  • 【Qt开发】初识Qt

    Qt是⼀个 跨平台的C++图形⽤⼾界⾯应⽤程序框架 。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是 完全面向对象 的,很容易扩展。Qt为开发者提供了⼀种 基于组件 的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应⽤程序,同时也可以使⽤

    2024年01月21日
    浏览(50)
  • 【Qt】Qt 开发环境安装 ( Qt 版本 5.14.2 | Qt 下载 | Qt 安装 )

    Qt 开发环境下载地址 : https://download.qt.io/archive/qt/ 该界面可以下载 Qt 各个版本的开发环境 ; Qt 版本选择 , Qt 的各个大版本都在同步更新 , 如 5.1 , 5.9 , 5.14 , 6.0 等 , 每个版本都有不同的性能和功能 , 每个版本进入后的二级目录的小版本 , 尽量选择最新的版本 ; 如进入 5.14 目录后

    2024年02月14日
    浏览(65)
  • QT基础篇(15)QT5多国语言国际化

    1.基本概念 1.1国际化支持的实现 语言国际化(Localization)是指将软件、网站或应用程序适应不同语言、地区和文化的过程。实现语言国际化支持可以通过以下几个步骤: 提取可本地化的文本:将软件或应用程序中需要翻译的文本内容提取出来,例如界面文本、按钮标签、错

    2024年01月24日
    浏览(39)
  • 【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程

    博客主页:Duck Bro 博客主页 系列专栏:Qt 专栏 关注博主,后期持续更新系列文章 如果有错误感谢请大家批评指出,及时修改 感谢大家点赞👍收藏⭐评论✍ 文章编号:Qt 学习笔记 / 02 1. 安装包下载(网盘链接) 链接:https://pan.baidu.com/s/1t3jbYcFYFuJIfe0hPmeDmQ?pwd=duck 提取码:du

    2024年04月26日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包