QT的介绍和优点,以及使用QT初步完成一个登录界面
QT介绍
- QT主要用于图形化界面的开发,QT是基于C++编写的一套界面相关的类库,进程线程库,网络编程的库,数据库操作的库,文件操作的库…
- QT是一个跨平台的GUI图形化界面开发工具
QT的优点
- 跨平台,具有较为完备的图形开发库,所能想到的图形的实现基本都有,比window的MFC的库更强大
- 接口的封装性好,易上手,学习QT框架对学习计算机图形框架有很重要的参考意义
- QT内部基本上有一套自己的简易好用的内存回收机制,对提高C++水平有帮助
- 有很好的社区环境,市场份额在缓慢上升
- 轻量级的开发环境,可以做嵌入式开发
练习
完成一个登录界面的界面组件设置
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton> //按钮组件头文件
#include <QLabel> //标签组件头文件
#include <QLineEdit> //行编辑器组件头文件
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//设置窗口this->resize(540,410); //设置窗口大小this->setWindowTitle("奕书聊天室");//设置窗口标题this->setWindowIcon(QIcon("C:\\Users\\W\\Desktop\\icon\\wodepeizhenshi.png"));//设置登录按钮组件QPushButton *btn1 = new QPushButton(QIcon("C:\\Users\\W\\Desktop\\icon\\login.png"),"登录",this);//设置按钮组件的图标,文本内容,和让其在当前界面显示btn1->move(240,340); //设置按钮组件的位置btn1->resize(80,40); //设置按钮组件的大小// btn1->setEnabled(false); //设置按钮不可点击//设置取消按钮组件QPushButton *btn2 = new QPushButton(QIcon("C:\\Users\\W\\Desktop\\icon\\cancel.png"),"取消",this);//设置按钮组件的图标,文本内容,和让其在当前界面显示btn2->move(340,340);btn2->resize(80,40);// btn2->setEnabled(false);//设置LOGOQLabel *lab1 = new QLabel(this);lab1->setPixmap(QPixmap("C:\\Users\\W\\Desktop\\1.png"));lab1->resize(540,180);lab1->setScaledContents(true);//设置行编辑器 账号QLineEdit * edit1 = new QLineEdit(this);edit1->resize(220,40);edit1->move(180,220);edit1->setPlaceholderText("QQ号码/手机/邮箱");//设置占位符//edit1->setEchoMode(QLineEdit::Password);//设置行编辑器 密码QLineEdit * edit2 = new QLineEdit(this);edit2->resize(220,40);edit2->move(180,280);edit2->setPlaceholderText("密码");//设置占位符edit2->setEchoMode(QLineEdit::Password);//设置密文显示//设置账号的LOGOQLabel *lab2 = new QLabel(this);lab2->setPixmap(QPixmap("C:\\Users\\W\\Desktop\\icon\\userName.jpg"));lab2->resize(50,40);lab2->move(edit1->x()-85,edit1->y());lab2->setScaledContents(true); //设置图片内容自适应//设置账号的LOGOQLabel *lab3 = new QLabel(this);lab3->setPixmap(QPixmap("C:\\Users\\W\\Desktop\\icon\\passwd.jpg"));lab3->resize(50,40);lab3->move(edit2->x()-85,edit2->y());lab3->setScaledContents(true); //设置图片内容自适应
}
MainWindow::~MainWindow()
{delete ui;
}

对QT编写文件进行注释理解
.pro文件
QT += core gui
#在进行编程时QT工程需要的库 core是核心库,gui是图形化界面相关的库greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#当版本超过4.0会添加widgetsCONFIG += 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下的文件)
SOURCES += \ main.cpp \mywindow.cpp#用来管理头文件(Headers下的文件)
HEADERS += \mywindow.h#用来管理ui文件(Froms下的文件)
FORMS += \mywindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
.h文件
#ifndef MYWINDOW_H
#define MYWINDOW_H //防止头文件重复#include <QWidget> //QWidget类所在的头文件,父类头文件QT_BEGIN_NAMESPACE
namespace Ui { class Mywindow; } //命名空间的声明
QT_END_NAMESPACE//定义属于自己的类,Mywindow是类名,公共继承于QWidget
class Mywindow : public QWidget
{Q_OBJECT //信号与槽的元对象public:Mywindow(QWidget *parent = nullptr); //声明构造函数,并定义一个默认参数~Mywindow(); //声明析构函数private:Ui::Mywindow *ui; //通过ui指针查找ui界面中的组件
};
#endif // MYWINDOW_H
mywindow.cpp文件
#include "mywindow.h" //头文件
#include "ui_mywindow.h" //ui界面对应的头文件//构造函数的定义
Mywindow::Mywindow(QWidget *parent): QWidget(parent) //显性调用父类的构造函数完成子类从父类继承的成员的初始化, ui(new Ui::Mywindow) //对类中的指针成员开辟空间
{ui->setupUi(this); //为ui界面中拖拽出来的组件开辟空间
}Mywindow::~Mywindow() //定义析构函数
{delete ui; //释放ui指针
}
main.cpp文件
#include "mywindow.h" //头文件#include <QApplication> //应用程序的头文件int main(int argc, char *argv[])
{QApplication a(argc, argv); //实例化一个应用程序的对象,调用有参构造Mywindow w; //在栈区实例化一个类对象w.show(); //调用show函数展示界面,是父函数提供的QWidgetreturn a.exec();//为了阻塞界面不被关系,等待相关事情的发生//等待信号与槽、事件处理、等待用户操作
}相关文章:
QT的介绍和优点,以及使用QT初步完成一个登录界面
QT介绍 QT主要用于图形化界面的开发,QT是基于C编写的一套界面相关的类库,进程线程库,网络编程的库,数据库操作的库,文件操作的库…QT是一个跨平台的GUI图形化界面开发工具 QT的优点 跨平台,具有较为完备…...
MySQL教程
MySQL教程 数据库简介数据库的基本概念MySQL简介windows下安装MySQLLinux下安装MySQL在MacOS下面安装MySQLMySQL配置文件分析MySQL数据库的基本操作MySQL创建表MySQL插入数据MySQL删除数据MySQL修改数据MySQL基本查询MySQL可视化客户端SQL语句的分类MySQL的DDLMySQL的数据类型…...
深入理解协同过滤算法及其实现
导语 个性化推荐系统在现代数字时代扮演着重要的角色,协助用户发现他们可能感兴趣的信息、产品或媒体内容。协同过滤是个性化推荐系统中最流行和有效的算法之一。 目录 协同过滤算法的原理 基于用户的协同过滤(User-Based Collaborative Filtering&am…...
力扣:随即指针138. 复制带随机指针的链表
复制带随机指针的链表 OJ链接 分析: 该题的大致题意就是有一个带随机指针的链表,复制这个链表但是不能指向原链表的节点,所以每一个节点都要复制一遍 大神思路: ps:我是学来的 上代码: struct Node* copyRandomList(s…...
【从0学习Solidity】合约入门 Hello Web3
【学习Solidity的基础】入门智能合约开发 Hello Web3 📱不写代码没饭吃上架主页 在强者的眼中,没有最好,只有更好。我们是全栈开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索全栈开发的无限…...
awtk-ftpd 发布
1. 介绍 在嵌入式应用程序中,有时需要提供一个 FTP 服务,用于对系统的文件进行远程管理。 awtk-ftpd 实现了一个 简单的 FTP 服务。主要特色有: 小巧。约 800 行代码。可以在各种嵌入式平台运行。内存开销低。正常内存需求小于 6K。兼容 F…...
抽象轻松的C语言
#include <stdio.h> /* 预处理指令*/ /* 函数 */ int main() {int log 3.14;printf("hello word * %d\n easy", log);getchar();/* 获取键盘输入的字母,在这个程序中的作用是防止程序瞬间关闭 */return 0; } 上一篇说过,C程序是C语言的…...
【力扣每日一题01】两数之和
开了一个新专栏,用来记录自己每天刷题,并且也是为了养成每日学习这个习惯,期待坚持一年后的自己! 一、题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数&am…...
机器学习——手写数字识别
0、:前言 这篇文章能够帮助你从数据到模型的整个过程实现不过至于安装第三方库等基础问题,本文不涉及,因为确实不难,搜一搜一大把本此实验运行环境为jupyter,当然通过pycharm也是可行的 1、数据: 手写数字…...
【日积月累】后端刷题日志
刷题日志 说说对Java的理解JAVA中抽象类和接口之间的区别Java中的泛型 和equals()的区别八种基本数据类型与他们的包装类在一个静态方法内调用一个非静态成员为什么是非法的静态方法与实例方法有何不同重载与重写深拷贝浅拷贝面向过程与面向对象成员变量与局部变量Spring框架Sp…...
Matlab在编码中增加CRC和交织功能
定义CRC生成和检验的类(包括函数) 我们在MATLAB中定义一个类(class),包含了CRC生成函数和检验函数(囊括了常用的CRC多项式) classdef CRCpropertiesCRCbit_LenpolynomialCRCgenCRCdetendmetho…...
Css 设置从上到下的渐变色: 0到70%为yellow,然后线性地变成透明。
您可以使用 CSS 的 linear-gradient() 函数来创建从上到下的渐变色。以下是一个例子: background: linear-gradient(to bottom, yellow 0%, transparent 70%);这将从上到下创建一个渐变色,从 0% 到 70% 是黄色,然后线性地变成透明。您可以将…...
git在windows上安装
介绍git工具在windows上如何安装 git官网下载地址 1.1、下载 https://github.com/git-for-windows/git/releases/download/v2.36.0.windows.1/Git-2.36.0-64-bit.exe自行选择版本,这里我选择的是 Git-2.36.0-64-bit这个版本 1.2、安装 安装路径选择英文且不带空格…...
快速上手GIT命令,现学也能登堂入室
系列文章目录 手把手教你安装Git,萌新迈向专业的必备一步 GIT命令只会抄却不理解?看完原理才能事半功倍! 快速上手GIT命令,现学也能登堂入室 系列文章目录一、GIT HELP1. 命令文档2. 简要说明 二、配置1. 配置列表2. 增删改查3. …...
二进制安全虚拟机Protostar靶场 安装,基础知识讲解,破解STACK ZERO
简介 pwn是ctf比赛的方向之一,也是门槛最高的,学pwn前需要很多知识,这里建议先去在某宝上买一本汇编语言第四版,看完之后学一下python和c语言,python推荐看油管FreeCodeCamp的教程,c语言也是 pwn题目大部…...
python实现的一些方法,可以直接拿来用的那种
1、日期生成 很多时候我们需要批量生成日期,方法有很多,这里分享两段代码 获取过去 N 天的日期: import datetimedef get_nday_list(n):before_n_days []for i in range(1, n 1)[::-1]:before_n_days.append(str(datetime.date.today() …...
通过HTTP进行并发的数据抓取
在进行大规模数据抓取时,如何提高效率和稳定性是关键问题。本文将介绍一种可操作的方案——使用HTTP代理来实现并发的网页抓取,并帮助您加速数据抓取过程。 1. 选择合适的HTTP代理服务供应商 - 寻找信誉良好、稳定可靠且具备较快响应时间的HTTP代理服务…...
《论文阅读21》Equivariant Multi-View Networks
一、论文 研究领域:计算机视觉 | 多视角数据处理中实现等变性论文:Equivariant Multi-View Networks ICCV 2019 论文链接视频链接 二、论文简述 在计算机视觉中,模型在不同视角下对数据(例如,点云、图像等࿰…...
【数据结构】| 并查集及其优化实现
目录 一. 并查集基本概念处理过程初始化合并查询小结 二. 求并优化2.1 按大小求并2.2 按秩(高度)求并2.3 路径压缩2.4 类的实现代码2.5 复杂度分析 三. 应用LeetCode 128: 最长连续数列LeetCode 547: 省份数量LeetCode 200: 岛屿数量 一. 并查集基本概念 以一个直观的问题来引入…...
最新ChatGPT程序源码+AI系统+详细图文部署教程/支持GPT4.0/支持Midjourney绘画/Prompt知识库
一、AI系统 如何搭建部署人工智能源码、AI创作系统、ChatGPT系统呢?小编这里写一个详细图文教程吧!SparkAi使用Nestjs和Vue3框架技术,持续集成AI能力到AIGC系统! 1.1 程序核心功能 程序已支持ChatGPT3.5/GPT-4提问、AI绘画、Mi…...
App无辜躺枪?手把手教你搞定腾讯手机管家误报导致的应用商店下架
当合规应用遭遇误报下架:开发者系统性应对指南运动健康类应用被标记为金融诈骗软件?社交工具因"病毒风险"被各大商店紧急下架?这类看似荒谬的误报事件,正在成为中小开发团队的"无妄之灾"。某知名运动App开发团…...
DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉!
更多请点击: https://kaifayun.com 第一章:DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉! 当 DeepSeek 的系统设计辅助能力突然变“笨”——接口建议频繁失准、上下文感知错乱、生成代码无法通过基础编…...
Hirschmann RS20-0800M4M4SDAE工业以太网交换机
Hirschmann RS20-0800M4M4SDAE 工业以太网交换机产品特点:端口配置:共8个端口,含6个RJ45电口和2个ST光纤接口。端口速率:所有端口均为100Mbps快速以太网。光纤类型:2个光纤端口为多模、ST接头。管理类型:二…...
13456
12356...
MBTI性格测试
简介 MBTI(Myers‑Briggs Type Indicator,迈尔斯‑布里格斯类型指标)是基于荣格心理类型理论发展出的性格类型工具,由凯瑟琳库克布里格斯及其女儿伊莎贝尔布里格斯迈尔斯创建。它通过四对偏好维度将个体的认知与行为倾向归纳为 16…...
【紧急预警】92%的DeepSeek测试用例生成失败源于这4个隐性配置缺陷——资深SDET连夜整理修复清单
更多请点击: https://codechina.net 第一章:DeepSeek测试用例生成的现状与危机本质 当前,DeepSeek系列大模型(如DeepSeek-Coder、DeepSeek-VL)在代码生成与理解任务中展现出强大能力,但其测试用例自动生成…...
使用TaotokenCLI工具一键配置开发环境中的API密钥
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置开发环境中的API密钥 在团队协作或个人开发中,为每个项目或成员手动配置大模型API密钥和…...
别急着扔!12年老ThinkPad X230升级SSD和内存后,Win10流畅得像新电脑
12年老ThinkPad X230重生指南:极简升级打造流畅办公利器每次打开抽屉看到那台积灰的ThinkPad X230,总有种说不出的情感。这款2012年问世的经典商务本,曾陪伴无数人度过加班到凌晨的夜晚。如今性能确实有些力不从心,但直接丢弃又觉…...
Web渗透测试能力成长地图:从工具使用到漏洞认知跃迁
1. 这不是工具清单,而是一张Web渗透测试的“能力成长地图”你刚点开这篇文章,大概率正站在两个路口之间:一边是网上铺天盖地的“十大免费扫描器推荐”,点进去全是截图下载链接一句“一键扫漏洞”,结果装完跑两下&#…...
百度深度学习研究院的“叛将“,带着一颗芯片改变了中国智能驾驶——地平线余凯,从ImageNet冠军到征程出货1000万
大家好,我是写代码的篮球球痴。这篇文章跟我自己有点关系——我开的是理想汽车。理想的智驾系统 AD Pro,搭载的就是地平线征程 5 芯片。2026 年 1 月理想 AD Pro 4.0 推送,基于单颗征程 6M 实现了城市 NOA——这是行业里第一个用单颗 128TOPS…...
