03——驾校科目一考试系统——登录界面(2)

简介: 运行项目——成功添加背景图缺点:背景图片盖住了登录界面。

03——驾校科目一考试系统——登录界面(1):https://developer.aliyun.com/article/1415872

运行项目——成功添加背景图

缺点:背景图片盖住了登录界面。

875bec4d25df4c4caa7b7ec0bd930b60.png

原因是因为这个标签把之前给挡住了。QT中的标签是有顺序的。所以我们需要将其作为背景。

将图片当做背景

解决方案:首把这个图片标签第一个放进去。

       1bce1e7c8a5c4544b326760240874f46.png                        


此时这个图片在界面上的效果就没有了

d8431082060e4cf78192001eb17ba72e.png

将此图片标签设置为账号,然后顶替掉之前的账号位置,之前的账号将其名字清空拉大当做资源文件,以同样的方式引入图片即可。

ac5edd37c4e34884ada54c9a021ddfc4.png

运行项目——成功实现背景图

完成效果

1cd676f2c55c44089e97404da72af2fb.png

缺点:图片和窗口大小不一致

但是图片周边还有空隙不好控制,该怎么设置呢?这就涉及到集合到几何属性了。

几何属性

需要有三个东西的宽和高一致,具体属性如下所示:

  图片的宽和高
  放置图片的label标签
  对话框

如果这三者的宽和高一致的话,就不会出现缝隙了。

回到编辑模式开始代码的编辑:

7f892e5da5574cc4a5c64bd506b176cf.png

进入到构造函数,将空隙的问题进行解决。

标签有个方法可以设置自己的填充属性。

那么界面信息上面的空间我们怎么去访问呢?通过 ui指针。因为ui指向的是描述界面信息的这个类对象。

所以我们通过 ui来访问界面上的控件。

使用ui前,先给控件设置好名字是关键。

3ce186658b944745a8f99a82539a9e1d.png

77b40c6445ae49459b998282dd635549.png

20919373ace84b81a4d040318bf1e16f.png

ebdd53a395c14c428c8d612f655d1628.png

a43eede5665b4052a2221c9397684e88.png

回到编辑模式,编写代码。详细的注释我的代码上面都有。仔细看代码注释即可。

编写代码 logindialog.cpp

#include "logindialog.h"
#include "ui_logindialog.h"
LoginDialog::LoginDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::LoginDialog)
{
    //setupUi初始化界面方法
    ui->setupUi(this);
    //解决空隙
    /*
    标签有个方法可以设置自己的填充属性。
    那么界面信息上面的空间我们怎么去访问呢?通过 ui指针。因为ui指向的是描述界面信息的这个类对象。
    所以我们通过 ui来访问界面上的控件。
    使用ui前,先给控件设置好名字是关键。
    */
    //ui通过标签属性访问到图像然后调用 setScaledContents方法选择是否填充。true(填充)、false(不填充)
    ui->imgLabel->setScaledContents(true);
    //设置填充之后,我们还需要设置当前窗体的宽和高,需要和标签一致的大小。
    this->resize(ui->imgLabel->width(),ui->imgLabel->height());//使用resize重新设置整个窗体的大小 (width,height)
}
LoginDialog::~LoginDialog()
{
    //析构进行自然回收
    delete ui;
}

运行项目

(如果左上角依旧有空白,请在设计模式中的QWidget中选择geometry将X与Y都设置为0即可)。再通过鼠标拖动,将位置拖好看一点(也可以不拖,主要是为了美观)。

f2b37d1d61d74a35a2a52c230b23c3f5.png

改善意见:改变标题

但是窗体标题和?风格我们不太需要,所以在对窗口进行优化。

//logindialog.cpp增加代码
    //设置窗口风格   方法太长怎么办?真的一个一个敲?可以通过缩写 如设置标题:sWT(输入首字母)就能直接出来了。
    this->setWindowTitle("驾校科目一考试登录");//设置标题
    //设置一个普通的对话框,问号我们就不需要了,再加一个关闭按钮即可。
    this->setWindowFlags(Qt::Dialog|Qt::WindowCloseButtonHint);

7acb53e91b3940e59cc1b5e8dfb93b8e.png至此界面设计工作到此完成。

完整代码 logindialog.cpp

其他几个没发的就和之前一样即可,不用改动。

#include "logindialog.h"
#include "ui_logindialog.h"
#include<QtWidgets>
LoginDialog::LoginDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::LoginDialog)
{
    //setupUi初始化界面方法
    ui->setupUi(this);
    //解决空隙
    /*
    标签有个方法可以设置自己的填充属性。
    那么界面信息上面的空间我们怎么去访问呢?通过 ui指针。因为ui指向的是描述界面信息的这个类对象。
    所以我们通过 ui来访问界面上的控件。
    使用ui前,先给控件设置好名字是关键。
    */
    //ui通过标签属性访问到图像然后调用 setScaledContents方法选择是否填充。true(填充)、false(不填充)
    ui->imgLabel->setScaledContents(true);
    //设置填充之后,我们还需要设置当前窗体的宽和高,需要和标签一致的大小。
    this->resize(ui->imgLabel->width(),ui->imgLabel->height());//使用resize重新设置整个窗体的大小 (width,height)
    //设置窗口风格   方法太长怎么办?真的一个一个敲?可以通过缩写 如设置标题:sWT(输入首字母)就能直接出来了。
    this->setWindowTitle("驾校科目一考试登录");//设置标题
    //设置一个普通的对话框,问号我们就不需要了,再加一个关闭按钮即可。
    this->setWindowFlags(Qt::Dialog|Qt::WindowCloseButtonHint);
}
LoginDialog::~LoginDialog()
{
    //析构进行自然回收
    delete ui;
}

快速写出方法小技巧

方法太长怎么办?真的一个一个敲?可以通过缩写 如设置标题:setWindowTitle方法只需要输入sWT(输入首字母)就能直接出来了。

下一篇预告

驾校科目一考试系统——实现登陆功能(邮箱验证)。

目录
相关文章
|
SQL 安全 JavaScript
基于JavaWeb的电影院在线选座订票管理系统
基于JavaWeb的电影院在线选座订票管理系统
617 0
基于JavaWeb的电影院在线选座订票管理系统
|
2月前
|
小程序 JavaScript Java
座位预约|座位预约小程序|基于微信小程序的图书馆自习室座位预约管理系统设计与实现(源码+数据库+文档)
座位预约|座位预约小程序|基于微信小程序的图书馆自习室座位预约管理系统设计与实现(源码+数据库+文档)
47 0
|
2月前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
77 1
|
11月前
|
SQL 数据管理 Java
C#宿舍管理系统(C#课程设计含源码)
C#宿舍管理系统(C#课程设计含源码)
116 0
C#宿舍管理系统(C#课程设计含源码)
|
2月前
|
设计模式 数据安全/隐私保护
03——驾校科目一考试系统——登录界面(1)
双击ui文件进入设计模式。 想要把我们的登录窗口做成什么样的效果呢?理想效果图如下所示:用户需要一个账号和密码输入。最后还需要给用户两个按钮:一个登录按钮,一个取消按钮。
58 2
|
2月前
|
设计模式 数据安全/隐私保护
|
2月前
11驾校科目一考试系统——发布项目
发布项目   当我们编写完项目之后就需要发布项目 。就需要发布项目了。一般发布项目的话我们会把所有需要的文件都放在一个文件夹里面,这样的话就更方便。有时候文件过多的话,有可能会有很多的子文件夹,我们先把功能工作目录设置一下,因为当前的工作目录是debug或者release,导致咱们在读取数据文件的时候需要相对路径的话还需要上一级目录去寻找。如下图所示。
22 1
|
2月前
07——驾校科目一考试系统——布局题库
如果需要题库的资料(exam.txt)可以留下邮箱,博主会发给大家的。 总代码
70 1
|
12月前
|
存储 Java 关系型数据库
JavaWeb期末项目 图书馆管理系统
JavaWeb期末项目 图书馆管理系统
135 1
|
2月前
|
设计模式 编译器 C语言

热门文章

最新文章