嵌入式学习之QT学习----4 完善界面

这一部分就在嵌入式学习之QT学习—3制作简单的QT界面(如:QQ登录界面)的基础上进一步地完善界面。

1、给QT工程添加图片

(1)添加图片资源文件
选住项目名称-----》点击右键----》添加新文件----》Qt------>QtResource File-----》choose…(路径和名称都不能有中文,此处命名为qq)-----》下一步…-----》完成
添加完之后,会在工程文件下看到添加的资源文件夹以及文件。

点击新生成的“.qrc”文件,右键“open with”-----》“资源管理器”,会弹出以下界面,刚开始这些界面都是灰色的,不可以编辑的。在这里插入图片描述
点击添加,选择添加前缀,一般都将前缀设置为根目录“/”,摁下ctrl+s保存;接着再次点击添加,添加文件,选择想要添加的图标,添加完成之后,点击保存。
这一番操作之后,可以在工程文件下发现多了工程文件的代码。
在这里插入图片描述
(2)引用添加的图片
打开ui文件,添加“Label”,将label中的文字删除掉,然后右键Label控件,选择“改变样式…”----》点击“添加资源”处的箭头-----》“border-image”----》“”----》ok----》ok
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编译运行结果如下:
在这里插入图片描述

2、界面布局

界面布局并不会影响.cpp代码
在这里插入图片描述
接下来给刚才做的界面来布个局吧(再添加一个控件,命名为“QQ”字样)
在这里插入图片描述
将黑色框框里面的控件全部都按照“水平布局”,黄色框框里的控件全部都按照“垂直布局”,先做水平布局的,再做垂直布局的。
属性编辑器的这里可以使其居中。
在这里插入图片描述
布局完成,编译结果如下:在这里插入图片描述
但是存在一个问题,放大或者缩小运行界面的时候,编译结果是固定的,不会跟着放大或者缩小,就很影响视觉效果。
在这里插入图片描述
那么要怎么修改呢?
给布局号的界面四周加上弹簧控件,然后选中整个界面,点击栅格布局,再重新编译运行一下。
在这里插入图片描述
编译结果如下:(这次将界面缩小成这么小都可以看得清楚啦)在这里插入图片描述
再回到ui界面,选中所有控件,点击“打破布局”,给其它控件之间也加上弹簧控件,使得界面更加美观。
在这里插入图片描述
编译运行结果如下:在这里插入图片描述

3、界面切换

步骤一:创建一个新的ui界面
选中"工程"—》右键—》添加新文件----》Qt----》Qt设计师界面类----》choose…----》widget----》下一步-----》改变“类名”-----》下一步-----》完成
在这里插入图片描述
步骤二:在新建的ui界面添加控件
以添加三个功能为例(消息、联系人、动态)
在这里插入图片描述
然后改控件名字以及添加图片资源
在这里插入图片描述
添加完图片资源之后要记得保存在这里插入图片描述
在这里插入图片描述
给界面布局:
在这里插入图片描述
编译运行发现并不会弹出来这个新设计的ui界面,因为在代码里面没有引用它。
步骤三:在代码中引用新的ui界面
修改widget.cpp文件代码如下:

#include "widget.h"
#include "ui_widget.h"
#include "enter.h"
//包含新界面的头文件

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->registBt,SIGNAL(clicked()),this,SLOT(registBt_clicked_slots()));
 
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_logoBt_clicked()
{
    //qDebug("logo success!");
    //在登录的槽函数里面声明一个对象
    enter *et = new enter;
    et->setGeometry(this->geometry());
    et->show();
}
//实现手动关联时声明的槽函数
void Widget::registBt_clicked_slots()
{
    qDebug("regist success!");
}

编译运行QT工程,此时弹出来:
在这里插入图片描述
点击登录就会出来新设计的ui界面:
在这里插入图片描述
那么如何从这个界面返回呢?
返回到新设计的ui界面,将“动态”字样修改为“返回”,然后选住该控件,给该控件改一下名字(改成了backBk),接着选住该控件,右键,“转到槽”(选择关联第一个信号),“返回”就意为着现在这个打开的新的ui界面,直接在槽函数中写入“关闭”即可。
在这里插入图片描述
再来编译运行一下,点击返回的时候就可以退出新的ui界面啦。

4、验证账号与密码输入是否正确

要验证账号密码输入的是否正确,就得判断一下。widget.cpp的代码修正如下:

#include "widget.h"
#include "ui_widget.h"
#include "enter.h"
//包含新界面的头文件
#include <QString>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->registBt,SIGNAL(clicked()),this,SLOT(registBt_clicked_slots()));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_logoBt_clicked()
{
    //qDebug("logo success!");

    //定义username以及passwd,并获取账号以及密码
    QString userName = ui->userEdit->text();
    QString passwd = ui->passwdEdit->text();
    //获取到账号以及密码之后,对账号和密码进行判断,若正确则切换界面
    if(userName == "23456" && passwd == "67890")
    {
        //在登录的槽函数里面声明一个对象
        enter *et = new enter;
        et->setGeometry(this->geometry());
        et->show();
    }


}
//实现手动关联时声明的槽函数
void Widget::registBt_clicked_slots()
{
    qDebug("regist success!");
}


编译运行,编译结束之后,点击“登录”是没有反应的,但是当账户和密码输入正确之后,就可以进行界面切换啦。
在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值