编程语言
首页 > 编程语言> > Qt应用程序开发框架-快速入门篇

Qt应用程序开发框架-快速入门篇

作者:互联网

文章目录

一.Qt介绍及安装

Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

Qt使用效果
在这里插入图片描述Qt下载地址

https://download.qt.io/
在这里插入图片描述

依次进入archive->qt目录,安装最新版本即可,旧版本可能存在一些玄幻的问题

如果下载速度不行的话,可以去中科大的镜像下载

  • 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/

二.QtCreator介绍

安装好后在对应的目录下找到QtCreator,QtCreator是Qt官方的IDE,专门用Qt框架开发图形界面的
在这里插入图片描述在QtCreator可以新建,打开,编辑项目
在这里插入图片描述一个项目一般由以下几个部分组成

三.QtDesigner介绍

QtDesigner是Qt自带的对ui界面进行设计的一个工具,点击项目自动生成的ui文件就可以进入,QtDesigner包含以下主要几个区域

在这里插入图片描述点击左下角的小锤子,也就是构建按钮后,QtDesigner会把目前的界面设计也就是ui文件转译成XML文件,如图
在这里插入图片描述这个XML文件会被QtCreator转译对应的C++代码,在窗体类的构造函数中通过setupui函数去生成
在这里插入图片描述整个过程其实就是把QtDesigner的一些操作直接生成了代码,大大节省了我们纯C++开发GUI界面的时间和精力,如图
在这里插入图片描述
这样,通过QtDesigner可以把所有需要的界面直接生成,然后在后台编写逻辑,这就是常说的QML与C++交互开发

访问和操作控件
构建完成后,我们便可以在后台操作控件,更改其设置,如图

//清除AID,BID,CompanyID,SupermarketID的子项
ui->AID->clear(); 
ui->BID->clear();
ui->CompanyID->clear();
ui->SupermarketID->clear();
//遍历添加子项
for(int i=1;i<=CompanySum;i++)
{
    ui->AID->addItem(QString::number(i));
    ui->BID->addItem(QString::number(i));
    ui->CompanyID->addItem(QString::number(i));
}
for(int i=1;i<=SupermarketSum;i++)
{
    ui->SupermarketID->addItem(QString::number(i));
}

在这里插入图片描述效果如图

在这里插入图片描述

四.Qt信号和槽

现在存在的需求就是,已经设计好了界面,如何实现基本操作,比如点击设置按钮就可以设置应用内部信息。这就引入了Qt的信号和槽概念,每一个控件在Qt里面都是一个对象,每一个对象都有信号和槽,当这个控件内部的属性被改变之后,会广播出一个信号,与之绑定的槽接收到信号后就会执行相应的操作
connect函数
connect顾名思义,就是实现信号和槽连接绑定的函数,在Qt的帮助文档里面可以看到connect的详细解释
在这里插入图片描述
connect demo:实现button被点击后调用test函数
在这里插入图片描述
connect的五个参数

  1. 发出信号的对象
  2. 发出的信号信息,用SIGNAL标识
  3. 接收信号的对象
  4. 接收信号后调用的槽函数,用SLOT标识
  5. 配置信息

同时,QtDesigner提供较为简单的绑定方式,在QtDesigner界面菜单栏编辑选项选择编辑信号和槽
在这里插入图片描述
在槽界面添加对应的函数进行绑定,如图蓝色部分是已经绑定好的函数
在这里插入图片描述
槽函数的设置
①需要在头文件里面使用slots声明槽函数
在这里插入图片描述
②在源文件中实现对应函数
在这里插入图片描述

至此,你已经完成了Qt快速入门,一天写个课设应该不是问题,可以进行开发实战,在开发中摸索学习即可~

标签:控件,Qt,程序开发,入门篇,ui,QtDesigner,QtCreator,函数
来源: https://blog.csdn.net/qq_50216270/article/details/121730051