【qt】仿写一个智能家居页面

来源

B站大学
示例图片:
在这里插入图片描述

1. 向界面中添加图片

1.1 添加图片资源文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后面的保持默认,点击完成。成功后可以看到:
在这里插入图片描述
在这里插入图片描述
再将图片拖入工程文件夹下面。
在这里插入图片描述
向页面添加图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
前缀名可以是自己设定,注意添加完毕后一定要先保存(ctrl+s),看文件后面的小星号*消失就保存成功,否则后面无法添加文件。
在这里插入图片描述

4.2 引用这个图片

回到ui文件,将一个label拖到页面中,删除label中的文字,右键这个label,选改变样式表。在这里插入图片描述
点击添加资源旁边的小箭头(不要直接点击添加资源!),点击border image。在这里插入图片描述
在这里插入图片描述
然后一直ok就行。
同样可以通过拖拽label为图片添加文字说明。
在这里插入图片描述

4.3 向按钮添加图片

示例图片中单机相应按钮会触发相应事件(开灯、开空调等等),因此我们需要为图片添加功能,即在按钮上添加图片。
选中按钮->右键->改变样式表
在这里插入图片描述
重复如上引用图片步骤即可。
在这里插入图片描述
推荐图标下载小网站 。免费下载。以及阿里巴巴矢量库。

4.4 删除引用

选中要删除的控件->右键->更改样式表->删除这一行->ok即可删除。
在这里插入图片描述

2. 设置界面布局

成熟的界面(比如网页)通过拖动大小都是会有相应调节,显示不开的也会带滚动条,但是我们目前做的拖动我们的qt界面会乱,也没有滚动条。
在这里插入图片描述
因此我们要学会布局。

  • qt下的布局:水平布局、垂直布局、栅格布局

在这里插入图片描述
水平布局:
在这里插入图片描述
垂直布局:
在这里插入图片描述
打破布局:
在这里插入图片描述

加弹簧:如果想要两个控件之间有一定距离,可以加横向和纵向弹簧。加弹簧首先要打破布局。
在这里插入图片描述
效果:
在这里插入图片描述
拖动大小:仍然保持布局。
在这里插入图片描述

3. 界面切换

3.1 创建新界面

选择最顶部的工程名,右键,添加新文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据自己,要不要改名,下一步,完成。
下面完善这个新界面:
在这里插入图片描述

3.2 显示新界面

点击运行,发现并不会显示该界面,显示的是之前qq登陆的界面,因为没有在代码中指定该页面的运行,因此需要修改代码部分来运行该界面。现在我们规定:点击登录按钮弹出来这个界面。

  1. 引入新界面的头文件

在这里插入图片描述

  1. 创建新对象并显示窗口
void Widget::on_loginBt_clicked()
{
    qDebug("log in successfully");
    controller *ctrl = new controller;
    ctrl->setGeometry(this->geometry());
    ctrl->show();
}

我们来看下效果:
在这里插入图片描述
在这里插入图片描述

  1. 添加返回功能

【1】添加一个返回按钮
在这里插入图片描述
将按钮加入布局后会很长,通过修改maximunSize来限制其大小。
在这里插入图片描述
但是现在的问题又是没居中,将其居中在布局中:
在这里插入图片描述
效果:
在这里插入图片描述
【2】关联信号和槽
注意:关联之前不要忘了先修改按钮的名称!
【3】在槽函数中添加代码

this->close();

运行效果:
点击back uo按钮就会关闭当前窗口。

4. 获取输入

我们现在不判断账号密码的准确性而直接进入智能家居界面,现我们添加账号密码的验证:

  1. 关联信号和槽函数
connect(ui->logBt, SIGNAL(clicked()), this, SLOT(on_loginBt_clicked()));

按钮右键自动关联,但无法修改槽函数名字,要想修改槽函数的函数名,则可通过上一篇讲的手动关联进行。

  1. 设计槽函数
void Widget::on_loginBt_clicked()
{
    qDebug("log in successfully");

    QString username, password;
    username = ui->usernameEt->text();
    password = ui->passwordEt->text();
    if(username == "123" && password == "123"){
        controller *ctrl = new controller;
        ctrl->setGeometry(this->geometry());
        ctrl->show();
    }
}

保存运行即可通过登录按钮验证。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt智能家居页面设计中,你选择的基类是QWidget,这是Qt图形化应用程序的基础类。在main函数中,通过创建一个QApplication对象a来管理应用程序的各种资源和事件处理。然后创建一个Widget对象w,并通过调用show()方法将窗口显示出来。最后,通过调用a.exec()进入消息循环,处理各种消息。 在widget.h中,你定义了一个名为Widget的类,继承自QWidget。在这个类中,你声明了一些槽函数和私有成员变量。 在widget.cpp中,你实现了Widget类的构造函数和析构函数,并定义了一些槽函数的具体实现。例如,注册槽函数on_RegisterBt_clicked()用于处理注册按钮的点击事件,登录槽函数LoginBt_clicked_slots()用于处理登录按钮的点击事件。在登录槽函数中,你获取了用户名和密码的输入,并进行了简单的判断。如果用户名和密码都匹配成功,你创建了一个Ctrl对象并显示出来。 综上所述,通过Qt的QWidget基类和相关的槽函数,你可以设计出智能家居页面,并实现一些相关的功能,如注册和登录等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [QT——创建一个智慧家居界面](https://blog.csdn.net/qq_41873236/article/details/121944777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Qt仿写一个智能家居界面(登陆界面+跳转界面)](https://blog.csdn.net/qq_40344790/article/details/118653374)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值