使用QT实现一个简单的登陆对话框(纯代码实现C++)
使用QT实现一个简单的登陆对话框(纯代码实现C++)
效果展示

使用的QT控件
控件 描述 QLable 标签 QLineEdit 行文本框 QPushButton 按扭 QHBoxLayout 水平布局 QVBoxLayout 垂直布局
1. 首先创建一个QT项目
这里创建一个基于QWidget的QT项目

2. 在.h中添加代码
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
public:
// 将初始化界面的功能封装成一个函数,避免写到构造函数内,使其臃肿
void init();
private:
// 创建两个QLabel标签,两个QLineEdit单行文本框,两个QPushButton按扭
QLabel * userNameLb;
QLabel * passWordLb;
QLineEdit * userNameLe;
QLineEdit * passWordLe;
QPushButton * logIn;
QPushButton * logUp;
};
#endif // WIDGET_H
3. 在.cpp中添加代码
#include "widget.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
// 调用界面初始化函数
init();
}
Widget::~Widget()
{
}
void Widget::init()
{
userNameLb = new QLabel("用户名:");
passWordLb = new QLabel;
passWordLb->setText("密 码:");
userNameLe = new QLineEdit;
passWordLe = new QLineEdit;
logIn = new QPushButton("登陆");
logUp = new QPushButton;
logUp->setText("注册");
// 创建三个个水平布局
QHBoxLayout * usrLayout = new QHBoxLayout;
// 将用户名标签和文本框添加到水平布局 ,添加的顺序决定布局的顺序
usrLayout->addWidget(userNameLb);
usrLayout->addWidget(userNameLe);
QHBoxLayout * pasLayout = new QHBoxLayout;
pasLayout->addWidget(passWordLb);
pasLayout->addWidget(passWordLe);
QHBoxLayout * btnLayout = new QHBoxLayout;
btnLayout->addWidget(logIn);
btnLayout->addWidget(logUp);
// 创建一个垂直布局,注意这个垂直布局需要指定父类,这里指定this,意思是将这个垂直布局设置到本窗口中
QVBoxLayout * wholeLayout = new QVBoxLayout(this);
// 从上到下顺序依次将三个布局添加到这个垂直布局中,添加布局使用addLayout
wholeLayout->addLayout(usrLayout);
wholeLayout->addLayout(pasLayout);
wholeLayout->addLayout(btnLayout);
}
4. 运行效果

这时运行的效果能够达到预期,但是有一个问题,那就是用户可以随意拉动窗口大小,使得界面变得不美观

解决方法就是,可以固定窗口大小,不让用户能够拖动窗口
- 在.cpp 的构造函数中添加如下代码:
// 设置窗口固定大小
this->setFixedSize(300,150);
- 这时再运行,将鼠标放置在右下角,就不显示可以拖动了!
使用QT实现一个简单的登陆对话框(纯代码实现C++)的更多相关文章
- bootstrap 一个简单的登陆页面
效果如图:用bootstrap 写的一个简单的登陆 一.修改样式 样式可以自己调整,例如换个背景色之类的,修改 background-color属性就可以 #from { background-col ...
- tkinter做一个简单的登陆页面
做一个简单的登陆页面 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("900x3 ...
- tkinter做一个简单的登陆页面(十六)
做一个简单的登陆页面 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("900x3 ...
- Linux内核分析—完成一个简单的时间片轮转多道程序内核代码
---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10 ...
- 20135202闫佳歆--week2 一个简单的时间片轮转多道程序内核代码及分析
一个简单的时间片轮转多道程序内核代码及分析 所用代码为课程配套git库中下载得到的. 一.进程的启动 /*出自mymain.c*/ /* start process 0 by task[0] */ p ...
- python定义的一个简单的shell函数的代码
把写代码过程中经常用到的一些代码段做个记录,如下代码段是关于python定义的一个简单的shell函数的代码. pipe = subprocess.Popen(cmd, stdout=subproce ...
- django写一个简单的登陆注册
要写这个,前提还是需要知道三个知识: 一个是urls.py,它是写我们的路由关系的,之前我写了通过wsgiref写一个简单的服务端,也用到了路由,就是 请求过来的url和视图函数的对应关系. 二是就是 ...
- vue-cli3和element做一个简单的登陆页面
1.先用vue-cli3创建一个项目 2.安装element模块 全局安装 npm i element-ui -S 3在main.js引入模块 import ElementUI from 'eleme ...
- android示例:一个简单的登陆程序
最近写了个简单的登陆程序,有几点收获: 1.懂得如何在LinearLayout中嵌套LinearLayout,完善布局的行列: 2.用android:layout_weight控制控件的比重: 3.用 ...
随机推荐
- 数据可视化之powerBI技巧(十八)Power BI动态技巧:动态显示列和度量值
今天分享一个可视化小技巧,如何在PowerBI的表格中动态显示需要的列? 就是这样的效果, 也就是根据切片器的筛选,来显示需要的列,做起来很简单,步骤如下: 01 逆透视表 进入Powerquery编 ...
- 数据可视化之powerBI技巧(五)在Power BI中写出优雅的度量值是什么体验?
之前的文章(采悟:连接表的几个DAX函数,一次全掌握)介绍了产品A的客户与产品B的客户的各种交叉关系,其中最常用的应该是找出A和B的共同客户,以便进行产品关联分析. 之前的思路是计算出两个产品的共同客 ...
- 04 drf源码剖析之版本
04 drf源码剖析之版本 目录 04 drf源码剖析之版本 1. 版本简述 2. 版本使用 3.源码剖析 4. 总结 1. 版本简述 API版本控制使您可以更改不同客户端之间的行为.REST框架提供 ...
- 【高性能Mysql 】读书笔记(三)
第5章 创建高性能的索引 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 索引基础 索引的重要性:找一本800面的书的某一段内容,没有目录也没有页码(页码也可类比 ...
- XML解析---利用XStream解析xml数据及反构造Java对象
XStream 是一个轻量级的.简单易用的开放源代码 Java库,用于将 Java 对象序列化为 XML 或者再转换回来.而且XStream还能将java对象转成其它格式,比如JSon. 需要用到的包 ...
- Ethical Hacking - POST EXPLOITATION(2)
MAINTAINING ACCESS - Methods 1. Using a veil-evasion Rev_http_service Rev_tcp_service Use it instead ...
- 【软件安装】CentOS7安装MariaDb(mysql_替代品安装)
1.背景 Maria Db是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品.Maria Db是由Sun在Sun Micro systems合并期间被Oracle收购后,于 ...
- 树形dp 之 小胖守皇宫
题目描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:有边相连的宫殿间可以互相望见.大内保卫森严,三步一岗,五步一 ...
- C++语法小记---函数对象
函数对象 用于替代函数指针 优势:函数对象内部可以保存状态,而不必使用全局变量或静态局部变量 关键:重载"()"操作符 #include<iostream> #incl ...
- Java实现简单的增删改查操作
需求分析:通过数组 ,完成 对学生信息的 管理 (增删改查)创建1个 学生类创建1个 CRUD的类 – 学生管理类 并测试 在这个程序中我只运用了两个类进行操作 package com.hopu.de ...