Qt 练习做一个登录界面

练习做一个登录界面

效果

UI图

UI代码

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Dialog</class><widget class="QDialog" name="Dialog"><property name="geometry"><rect><x>0</x><y>0</y><width>440</width><height>765</height></rect></property><property name="windowTitle"><string>Dialog</string></property><layout class="QVBoxLayout" name="verticalLayout_2"><property name="leftMargin"><number>10</number></property><property name="topMargin"><number>10</number></property><property name="rightMargin"><number>10</number></property><property name="bottomMargin"><number>10</number></property><item><widget class="QWidget" name="widget" native="true"><layout class="QHBoxLayout" name="horizontalLayout"><property name="leftMargin"><number>10</number></property><property name="topMargin"><number>10</number></property><property name="rightMargin"><number>10</number></property><property name="bottomMargin"><number>10</number></property><item><widget class="QPushButton" name="btnSet"><property name="minimumSize"><size><width>32</width><height>32</height></size></property><property name="maximumSize"><size><width>32</width><height>32</height></size></property><property name="text"><string>PushButton</string></property></widget></item><item><widget class="QLabel" name="label_Title"><property name="text"><string>视频会议</string></property><property name="alignment"><set>Qt::AlignmentFlag::AlignCenter</set></property></widget></item><item><widget class="QPushButton" name="btnMin"><property name="minimumSize"><size><width>32</width><height>32</height></size></property><property name="maximumSize"><size><width>32</width><height>32</height></size></property><property name="text"><string>PushButton</string></property></widget></item><item><widget class="QPushButton" name="btnClose"><property name="minimumSize"><size><width>32</width><height>32</height></size></property><property name="maximumSize"><size><width>32</width><height>32</height></size></property><property name="text"><string>PushButton</string></property></widget></item></layout></widget></item><item><spacer name="verticalSpacer"><property name="orientation"><enum>Qt::Orientation::Vertical</enum></property><property name="sizeType"><enum>QSizePolicy::Policy::Fixed</enum></property><property name="sizeHint" stdset="0"><size><width>20</width><height>40</height></size></property></spacer></item><item><layout class="QHBoxLayout" name="horizontalLayout_4"><item><spacer name="horizontalSpacer"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item><item><widget class="QLabel" name="label_logo"><property name="minimumSize"><size><width>400</width><height>336</height></size></property><property name="maximumSize"><size><width>400</width><height>336</height></size></property><property name="text"><string/></property><property name="alignment"><set>Qt::AlignmentFlag::AlignCenter</set></property></widget></item><item><spacer name="horizontalSpacer_2"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item></layout></item><item><spacer name="verticalSpacer_2"><property name="orientation"><enum>Qt::Orientation::Vertical</enum></property><property name="sizeType"><enum>QSizePolicy::Policy::Fixed</enum></property><property name="sizeHint" stdset="0"><size><width>20</width><height>35</height></size></property></spacer></item><item><layout class="QHBoxLayout" name="horizontalLayout_5"><item><spacer name="horizontalSpacer_3"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item><item><layout class="QVBoxLayout" name="verticalLayout"><item><widget class="QPushButton" name="btnWeichatLogin"><property name="minimumSize"><size><width>400</width><height>50</height></size></property><property name="maximumSize"><size><width>400</width><height>50</height></size></property><property name="styleSheet"><string notr="true">QPushButton:hover
{/*边框色*/border-color:blue;
}</string></property><property name="text"><string>微信登录</string></property></widget></item><item><spacer name="verticalSpacer_3"><property name="orientation"><enum>Qt::Orientation::Vertical</enum></property><property name="sizeType"><enum>QSizePolicy::Policy::Fixed</enum></property><property name="sizeHint" stdset="0"><size><width>20</width><height>15</height></size></property></spacer></item><item><widget class="QPushButton" name="btnJoin"><property name="minimumSize"><size><width>400</width><height>50</height></size></property><property name="maximumSize"><size><width>400</width><height>50</height></size></property><property name="styleSheet"><string notr="true"/></property><property name="text"><string>加入会议</string></property></widget></item></layout></item><item><spacer name="horizontalSpacer_4"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item></layout></item><item><layout class="QHBoxLayout" name="horizontalLayout_2"><item><widget class="Line" name="line"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property></widget></item><item><widget class="QLabel" name="label_3"><property name="text"><string>其他登录方式</string></property><property name="alignment"><set>Qt::AlignmentFlag::AlignCenter</set></property></widget></item><item><widget class="Line" name="line_2"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property></widget></item></layout></item><item><layout class="QHBoxLayout" name="horizontalLayout_3"><item><widget class="QToolButton" name="toolBtnPhone"><property name="minimumSize"><size><width>60</width><height>80</height></size></property><property name="maximumSize"><size><width>60</width><height>80</height></size></property><property name="text"><string>...</string></property></widget></item><item><widget class="QToolButton" name="toolBtnEnpriseWeichat"><property name="minimumSize"><size><width>60</width><height>80</height></size></property><property name="maximumSize"><size><width>60</width><height>80</height></size></property><property name="text"><string>...</string></property></widget></item><item><widget class="QToolButton" name="toolBtnSSO"><property name="minimumSize"><size><width>60</width><height>80</height></size></property><property name="maximumSize"><size><width>60</width><height>80</height></size></property><property name="text"><string>...</string></property></widget></item></layout></item></layout></widget><resources/><connections/>
</ui>

项目结构

样式代码

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);this->setStyleSheet("background-color:white");//去除边框 : Qt::FramelessWindowHint//点任务拦图标时 显示和隐藏 窗口 Qt::WindowMinMaxButtonsHintthis->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);ui->btnSet->setText("");//写样式表ui->btnSet->setStyleSheet("QPushButton{background-image:url(://resources/set.png);border:none} QPushButton::hover{background-color:rgb(99,99,99)}");ui->btnMin->setText("");//写样式表ui->btnMin->setStyleSheet("QPushButton{background-image:url(://resources/min.png);border:none} QPushButton::hover{background-color:rgb(99,99,99)}");ui->btnClose->setText("");//写样式表ui->btnClose->setStyleSheet("QPushButton{background-image:url(://resources/close.png);border:none} QPushButton::hover{background-color:rgb(99,99,99)}");ui->label_logo->setText("");//显示图片QPixmap *pic = new QPixmap("://resources/logo.jpg");//设置图片缩放pic->scaled(ui->label_logo->size(),Qt::KeepAspectRatio);ui->label_logo->setScaledContents(true);ui->label_logo->setPixmap(*pic);ui->btnWeichatLogin->setText("");//写样式表ui->btnWeichatLogin->setStyleSheet("QPushButton{background-image:url(://resources/weichatlogin.png);border:none} QPushButton::hover{border-color:blue}");ui->toolBtnPhone->setText("手机号");ui->toolBtnPhone->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);ui->toolBtnPhone->setIconSize(QSize(60,60));ui->toolBtnPhone->setIcon(QIcon(":/resources/phonelogin.png"));ui->toolBtnPhone->setStyleSheet("border:none");ui->toolBtnEnpriseWeichat->setText("企业微信");ui->toolBtnEnpriseWeichat->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);ui->toolBtnEnpriseWeichat->setIconSize(QSize(60,60));ui->toolBtnEnpriseWeichat->setIcon(QIcon(":/resources/enpriseweichat.png"));ui->toolBtnEnpriseWeichat->setStyleSheet("border:none");ui->toolBtnSSO->setText("SSO");ui->toolBtnSSO->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);ui->toolBtnSSO->setIconSize(QSize(60,60));ui->toolBtnSSO->setIcon(QIcon(":/resources/sso.png"));ui->toolBtnSSO->setStyleSheet("border:none");//事件//关闭事件connect(ui->btnClose,&QPushButton::clicked,[=]{close();});connect(ui->btnMin,&QPushButton::clicked,[=]{showMinimized();//最小化//showMaximized();//最大化//if(this->isMaximized())});//判断是否最大化if(isMaximized()){}//判断是否最小化if(isMinimized()){showMaximized();//最大化}
}Dialog::~Dialog()
{delete ui;
}

今天时间有限,先写到这里,后面在细化怎么一步步做出来的

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

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

相关文章

ArcGIS软件之“新建中学最适合地址”地图制作

目录 最终效果图(全文图中的颜色类似即可&#xff0c;形状一样为标准&#xff09;第一步、设置现有中学的欧式距离第二步、将计算好的欧式距离 进行重分类第三步、进行核密度分析第四步、进行人口密度的重分类第五步、进行土地使用的要素转栅格第六步、对上一步进行重分类第七步…

就业市场变革:AI时代,我们将如何评估人才?

内容概要 在这个充满变革的时代&#xff0c;就业市场正被人工智能&#xff08;AI&#xff09;技术深刻改变。随着技术的进步&#xff0c;传统的人才评估方式逐渐显示出其局限性。例如&#xff0c;过去依赖于纸质简历和面试评估的方式在快速变化的环境中难以准确识别真实的人才…

Linux Kernel Programming (个人读书笔记)

目录 Before everything begins 笔者的环境 关于如何在Arch Linux下载Virtual Box 下载一个镜像&#xff0c;然后开启一个简单的虚拟机 在Ubuntu虚拟机下东西 配置我们的内核 啥是KConfig和KBuild? 构建内核配置选择 启动&#xff01;一个好的内核配置的开始 使用分发…

【传知代码】智慧医疗:纹理特征VS卷积特征

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;传知代码 欢迎大家点赞收藏评论&#x1f60a; 目录 论文概述纹理特征和深度卷积特征算法流程数据预处理方法纹理特征提取深度卷积特征提取分类网络搭建代码复现BLS_Model.py文件——分类器搭建py…

算法深度剖析:前缀和

文章目录 前言一、一维前缀和模板二、二维前缀和模板三、寻找数组的中心下标四、除自身以外数组的乘积五、和为 K 的子数组六、和可被 K 整除的子数组七、连续数组八、矩阵区域和 前言 本章将深度剖析前缀和&#xff0c;以及总结前缀和模板。 前缀和是一种在算法和数据处理中…

leetcode双指针题目总结

文章目录 283. 移动零题目描述解题 11. 盛最多水的容器题目描述解法解释时间复杂度 15. 三数之和题目描述解法思路解释优势 42. 接雨水题目描述解答具体思路 283. 移动零 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非…

Android——显式/隐式Intent

概述 在Android中&#xff0c;Intent是各个组件之间信息通信的桥梁&#xff0c;它用于Android各组件的通信。 Intent 的组成部分 一、显式 Intent 第一种方式 Intent intent new Intent(this, ActFinishActivity.class);startActivity(intent);第二种方式 Intent intent …

时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测

时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测 目录 时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多…

PAT甲级-1041 Be Unique

题目 题目大意 从一组数字中选出第一个唯一出现的数&#xff0c;输出该数。如果没有&#xff0c;则输出None。 思路 哈希的思想&#xff0c;将数值作为索引&#xff0c;对应该数值出现的次数&#xff0c;然后遍历数组即可。 注意第一个数字是指数字的个数&#xff0c;不是数…

LLM 使用 Elastic 实现可观察性:Azure OpenAI (二)

作者&#xff1a;来自 Elastic Muthukumar Paramasivam•Lalit Satapathy 我们为 Azure OpenAI GA 包添加了更多功能&#xff0c;现在提供提示和响应监控、PTU 部署性能跟踪和计费洞察&#xff01; 我们最近宣布了 Azure OpenAI 集成的 GA。你可以在我们之前的博客 LLM 可观察性…

Python画图3个小案例之“一起看流星雨”、“爱心跳动”、“烟花绚丽”

源码如下&#xff1a; import turtle # 导入turtle库&#xff0c;用于图形绘制 import random # 导入random库&#xff0c;生成随机数 import math # 导入math库&#xff0c;进行数学计算turtle.setup(1.0, 1.0) # 设置窗口大小为屏幕大小 turtle.title("流星雨动画&…

二十九、Python基础语法(继承-上)

一、概念介绍 继承&#xff1a;继承描述的是类与类之间的关系&#xff0c;集成之后子类对象可以直接使用父类中定义的方法的属性&#xff0c;可以减少代码冗余&#xff0c;提高编码效率。 二、继承语法 三、继承例子 # 定义一个父类 Animal class Animal:def __init__(self,…

‌频率和波长之间存在反比关系‌

‌频率和波长之间存在反比关系‌。根据波速公式vλf&#xff0c;在同种介质中&#xff0c;波的传播速度相同&#xff0c;因此波长和频率的乘积不变&#xff0c;即λv/f。这意味着频率越高&#xff0c;波长越短&#xff1b;频率越低&#xff0c;波长越长。 ‌频率和波数的转换公…

Rust 力扣 - 238. 除自身以外数组的乘积

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 这题主要有个关键点&#xff0c;就是元素能取0&#xff0c;然后我们分类讨论元素为0的数量 如果数组中存在至少两个元素为0&#xff0c;则每个元素的除自身以外的乘积为0如果数组中仅存在一个0&#xff0c;则为…

我们来学mysql -- 连接(原理版)

我们来学mysql -- 连接 题记两张表驱动表 题记 回到初学者的视角&#xff0c;navicat或命令窗口&#xff0c;呈现一行行数据&#xff0c;类比为excel工作薄更是深入人心通过join将多表的记录关联起来&#xff0c;这似乎也没啥问题只是好像是那么回事&#xff0c;又…似乎有想说…

Ubuntu 22.04安装部署

一、部署环境 表 1‑1 环境服务版本号系统Ubuntu22.04 server lts运行环境1JDK1.8前端WEBNginx1.8数据库postgresqlpostgresql13postgis3.1pgrouting3.1消息队列rabbitmq3.X(3.0以上)运行环境2erlang23.3.3.1 二、安装系统 2.1安装 1.安装方式&#xff0c;选第一条。 2.选择…

红队-windows基础篇

声明 通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一.Windows&linux介绍 微软windows操作系统&#xff0c;…

QT 从ttf文件中读取图标

最近在做项目时&#xff0c;遇到需要显示一些特殊字符的需求&#xff0c;这些特殊字符无法从键盘敲出来&#xff0c;于是乎&#xff0c;发现可以从字体库文件ttf中读取显示。 参考博客&#xff1a;QT 图标字体类IconHelper封装支持Font Awesome 5-CSDN博客 该博客封装的很不错…

AnaTraf | 探秘计算机网络:网络流量分析与 TCP 标志位解析

AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具AnaTraf网络流量分析仪是一款基于全流量&#xff0c;能够实时监控网络流量和历史流量回溯分析的网络性能监控与诊断系统&#xff08;NPMD&#xff09;。通过对网络各个关键节点的监测&#xff0c;收集网络性能…

瑞格智慧心理服务平台 NPreenSMSList.asmx SQL注入漏洞复现

0x01 产品简介 瑞格智慧心理服务平台是一家致力于提供个性化心理健康支持的平台。通过先进的AI技术和专业心理学家团队,为用户提供定制化的心理评估和个性化的心理咨询服务。平台注重隐私保护和数据安全,用户可以安全、便捷地接受在线咨询和心理指导,帮助他们理解和应对各种…