QT第一天

创建登录界面

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setFixedSize(700,800);//1.实例化一个标签,设置上面界面QLabel *lab1 = new QLabel(this);//设置父组件lab1 -> resize(700,300);//设置大小lab1->setPixmap(QPixmap("C:\\Users\\孟孟孟婷丽\\Desktop\\wangzhe.jpg"));//设置内容为图片lab1->setScaledContents(true);//设置内容自适应//2.实例化一个标签,设置账号QLabel *lab2 = new QLabel(this);//设置父组件lab2 -> move(150,400);//设置位置lab2->setPixmap(QPixmap("C:\\Users\\孟孟孟婷丽\\Desktop\\denglu.png"));//设置内容为图片//3.实例化一个标签,设置密码QLabel *lab3 = new QLabel(this);//设置父组件lab3 -> move(150,lab2->y()+50);//设置位置lab3->setPixmap(QPixmap("C:\\Users\\孟孟孟婷丽\\Desktop\\mima.png"));//设置内容为图片//1.构造一个行编辑器,构造时给定父组件QLineEdit *edit1 = new QLineEdit(this);edit1->setPlaceholderText("QQ/手机/邮箱");   //设置编辑器的占位文本edit1->resize(300,40);      //设置尺寸edit1->move(lab1->x()+250,400);//移动位置//edit1->setEnabled(false);   //设置不可用状态//2.构造一个行编辑器,构造时给定父组件以及文本内容QLineEdit *edit2 = new QLineEdit("llllll",this);qDebug() << edit2->text();    //获取行文本编辑器中文本内容edit2->resize(edit1->size());edit2->move(lab1->x()+250,edit1->y()+50);edit2->setEchoMode(QLineEdit::Password);   //设置回显模式//1.构造一个按钮时,指定父组件QPushButton *btn1 = new QPushButton(this);  //将当前界面设置成父组件btn1->setText("微信登录");btn1->resize(btn1->size());btn1->move(edit2->x(),edit2->x()+300);btn1->setIcon(QIcon("C:\\Users\\孟孟孟婷丽\\Desktop\\w.png"));//2.构造一个按钮时,指定父组件QPushButton *btn2 = new QPushButton(this);  //将当前界面设置成父组件btn2->setText("qq登录");btn2->resize(btn1->size());btn2->move(btn1->x()+100,edit2->x()+300);btn2->setIcon(QIcon("C:\\Users\\孟孟孟婷丽\\Desktop\\qie.png"));//2.构造一个按钮时,指定父组件QPushButton *btn3 = new QPushButton(this);  //将当前界面设置成父组件btn3->setText("取消登录");btn3->resize(btn1->size());btn3->move(btn1->x()+200,edit2->x()+300);btn3->setIcon(QIcon("C:\\Users\\孟孟孟婷丽\\Desktop\\cuowu.png"));}Widget::~Widget()
{delete ui;
}

1.配置文件  。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 += \main.cpp \widget.cpp#管理头文件
HEADERS += \widget.h#管理ui文件
FORMS += \widget.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 WIDGET_H
#define WIDGET_H    //防止文件重复包含#include <QWidget>  //QWidget类所在的头文件,父类头文件QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }//命名空间的声明
QT_END_NAMESPACE//定义属于自己的类,Widget是类名,公共继承自QWidget
class Widget : public QWidget
{Q_OBJECT    //信号与槽的元对象public:Widget(QWidget *parent = nullptr);  //构造函数的声明,有一个默认参数的形参~Widget();     //析构函数的声明private:Ui::Widget *ui;//后期可以通过ui指针找到ui界面上拖拽出来的组件
};
#endif // WIDGET_H

3.源文件

#include "widget.h"     //自己的头文件
#include "ui_widget.h"  //ui界面对应的头文件Widget::Widget(QWidget *parent) //构造函数的定义: QWidget(parent)   //显性调用父类的构造函数完成对子类从父类继承下来成员的初始化工作, ui(new Ui::Widget)//对自己类中的指针成员开辟空间
{ui->setupUi(this);  //给拖拽出来的组件实例化空间
}Widget::~Widget()      //析构函数的定义
{delete ui;         //释放ui指针的内存
}

4.主程序

#include "widget.h"   //图形化界面的头文件#include <QApplication>  //应用程序的头文件int main(int argc, char *argv[])
{QApplication a(argc, argv);  //实例化一个应用程序的对象,调用的是有参构造Widget w;    //在栈区实例化自定义类的对象w.show();    //调用show函数,展示图形化界面,该函数是父类提供的,直接用即可return a.exec();//为了阻塞界面不被关闭,等待相关事情发生
}                   //等待信号与槽,时间处理,等待用户操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/70509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElementUI浅尝辄止16:Tag 标签

用于标记和选择。 1.如何使用&#xff1f; 由type属性来选择tag的类型&#xff0c;也可以通过color属性来自定义背景色。<el-tag>标签一</el-tag> <el-tag type"success">标签二</el-tag> <el-tag type"info">标签三</e…

基于Mendix移动原生的离线应用

一、前言 不同行业的企业会有特殊的业务场景&#xff0c;比如某些制造业的企业的工厂是物理隔离的&#xff0c;但工程师需要拿着平板输入很多生产数据&#xff1b;某些煤炭和矿业企业&#xff0c;在实际的工作区都是比较偏远&#xff0c;信号比较差&#xff0c;但是又需要用手…

简单记录下gin中使用中间件记录操作日志

1、直接定义中间件package middlewareimport ("bytes""encoding/json""fmt""github.com/gin-gonic/gin""go.uber.org/zap""io""strconv""strings" )func LoggerMiddleWare() gin.HandlerFunc…

golang中如何判断字符串是否包含另一字符串

golang中如何判断字符串是否包含另一字符串 在Go语言中&#xff0c;可以使用strings.Contains()函数来判断一个字符串是否包含另一个字符串。该函数接受两个参数&#xff1a;要搜索的字符串和要查找的子字符串&#xff0c;如果子字符串存在于要搜索的字符串中&#xff0c;则返…

【python技巧】替换文件中的某几行

【python技巧】替换文件中的某几行 1. 背景描述2. 单行修改-操作步骤3. 多行修改-操作步骤 1. 背景描述 最近在写一个后端项目&#xff0c;主要的操作就是根据用户的前端数据&#xff0c;在后端打开项目中的代码文件&#xff0c;修改对应位置的参数&#xff0c;因为在目前的后…

快速搭建IntelliJ IDEA开发环境的完整教程

添加链接描述 Mysql 安装流程 常见问题 一、环境配置了很久了&#xff0c;不知道装没装过Mysql&#xff1f; 三种方法查&#xff1a;1. cmd中指令where is mysql 2.windows 环境变量中找MYSQL_HOME 3. 打开MySQL的配置文件my.cnf&#xff08;Windows系统路径为C:\ProgramDat…

浏览器安全-同源策略和CORS

同源策略 同源策略是浏览器的一个安全功能&#xff0c;浏览器禁止在当前域读写其他域的资源&#xff0c;如限制跨域发送ajax请求 不受同源策略限制的 1&#xff09;页面中的链接&#xff0c;重定向表单以及表单提交 2&#xff09;跨域资源引入 如script不受跨域限制&#xff0…

Elasticsearch:wildcard - 通配符搜索

Elasticsearch 是一个分布式、免费和开放的搜索和分析引擎&#xff0c;适用于所有类型的数据&#xff0c;例如文本、数字、地理空间、结构化和非结构化数据。 它基于 Apache Lucene 构建&#xff0c;Apache Lucene 是一个全文搜索引擎&#xff0c;可用于各种编程语言。 由于其速…

远程工作面试:特殊情况下的面试技巧

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

【Vue3 知识第四讲】数据双向绑定、事件绑定、事件修饰符详解

文章目录 一、数据双向绑定二、事件绑定详解2.1 **Vue中的事件绑定指令**2.2 **事件函数的调用方式**2.3 **事件函数参数传递** 三、事件修饰符3.1 **Vue中常用的事件修饰符**3.2 **按键修饰符** 四、属性绑定五、类与样式的绑定5.1 class 类的绑定5.2 style 样式绑定 一、数据…

代码随想录二刷day16

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣104. 二叉树的最大深度二、力扣559. N 叉树的最大深度三、力扣111. 二叉树的最小深度三、力扣力扣222. 完全二叉树的节点个数 前言 一、力扣104. 二叉树…

centos7安装php

在 CentOS 7 上使用 Remi 仓库安装 PHP 7.4&#xff0c;您可以按照以下步骤操作 1. 安装 EPEL 仓库&#xff1a; yum install -y epel-release 2. 安装 Remi 仓库&#xff1a; sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm 3. 启用 Remi 仓…

消息队列(MQ)面试

目录 讲一讲MQ 面试官: 在你之前的项目中&#xff0c;你是否使用过消息队列&#xff08;MQ&#xff09;&#xff1f;能详细介绍一下你在项目中如何使用MQ吗&#xff1f; 在用户和用户之间的多对多聊天通信中如何使用&#xff0c;请具体来讲一下。 那你可以讲一下消息的确认…

一文了解Android App Bundle 格式文件

1. Android App Bundle 是什么&#xff1f; 从 2021 年 8 月起&#xff0c;新应用需要使用 Android App Bundle 才能在 Google Play 中发布。 Android App Bundle是一种发布格式&#xff0c;打包出来的格式为aab&#xff0c;而之前我们打包出来的格式为apk。编写完代码之后&a…

Spring中依赖注入的继承bean的细节问题

介绍 有时我们会对一种类型的bean进行继承&#xff0c;在Spring生成bean的时候&#xff0c;返回类型有时是子类类型&#xff0c;有时会父类类型。那么到底在什么情况下用哪种类型呢&#xff1f;肯定有不少人会忽略这点&#xff0c;本篇文章就是把这个细节讲清楚 案例 父类Ba…

uni-app语音转文字功能demo(同声传译)

目录 首先去微信开发者官网申请一下同声传译的插件 微信公众平台 在文件中开始引用&#xff1a; 首先去微信开发者官网申请一下同声传译的插件 微信公众平台 后续使用的时候可以看详情里面的信息进行使用 在文件中开始引用&#xff1a; 注意&#xff01;&#xff01;在这个…

2023年了,java后端还有未来吗?

前言 Java当下确实是比较的内卷&#xff0c;但关键在于个人&#xff0c;可以看看不同地方&#xff08;这里主要举例北上广深一线城市&#xff09;对于Java开发工程师这个职位的具体要求&#xff1a; 在以下北上广深这些一线大城市的面试招聘当中不难看出&#xff0c;凡是工资…

二维码智慧门牌管理系统:让城市管理更智能、便捷

文章目录 前言一、二维码智慧门牌管理系统的特点二、数据集约化与规范化三、管理智能化与长效化四、标识规范化与易维护五、服务多元化与便捷化 前言 随着城市化进程的加速&#xff0c;城市管理面临着越来越多的挑战。为了解决地名地址管理交织错综、地名地址支撑政府管理成效…

【需要打开多少监视器】Python 实现

1.题目 某长方形停车场&#xff0c;每个车位上方都有对应 监控器Q&#xff0c;当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时&#xff0c;监控器才需要打开: 给出某一时刻停车场的停车分布&#xff0c;请统计最少需要打开多少个监控器 输入描述&#xff1a; …

自动驾驶中间件

自动驾驶中间件 1. 什么是中间件2. 中间件的分类3. 自动驾驶为什么需要中间件4. 通信中间件 Reference&#xff1a; 自动驾驶中间件&#xff1a;量产落地的关键技术通俗易懂的告诉你什么是中间件 对于初入自动驾驶行业的人来说&#xff0c;各色各样的新型传感器、线控系统、芯…