c++ qt--页面布局(第五部分)

c++ qt–页面布局(第五部分)

一.页面布局

在设计页面的左侧一栏的组件中我们可以看到进行页面布局的一些组件

在这里插入图片描述

布局组件的使用

1.水平布局

使用:将别的组件拖到水平布局的组件中即可,可以选择是在哪个位置

在这里插入图片描述

2.垂直布局

使用:将别的组件拖到垂直布局的组件中即可,可以选择是在哪个位置

在这里插入图片描述

3.栅格布局

使用:将别的组件拖到栅格布局的组件中即可,可以选择是在哪个位置

在这里插入图片描述

4.表单布局

在这里插入图片描述

分隔组件的使用

1.水平分隔

使用:将此组件放到布局组件中即可(也可以直接将组件放到窗口中)

在这里插入图片描述

1.垂直分隔

使用:将此组件放到布局组件中即可(也可以直接将组件放到窗口中)
在这里插入图片描述

在设计页面的上面也有跟左侧一样的页面布局(这里使用更加方便一些)

在这里插入图片描述

这里拿栅格布局进行使用

使用如下图

在这里插入图片描述

变成下图的样子

在这里插入图片描述

栅格布局具有一定的智能化,会自动帮你把要进行栅格布局的组件所占的大小和位置分配好

二.使用了页面布局的例子

实现下面窗口

在这里插入图片描述

进行实现

1.设计中用到的组件如下

在这里插入图片描述

这里布局用的是栅格布局

2.对用到组件重命名(实际上是指向组件的指针的名字)

在这里插入图片描述

3.将各个组件的功能进行实现

1.设置年龄

在mianwindow.cpp的构造函数中写下面代码

ui->sB_age->setValue(1);//年龄默认设置为1岁
2.设置性别

在mianwindow.cpp的构造函数中写下面代码

 ui->cB_sex->addItem("男");//设置性别,默认显示第一个ui->cB_sex->addItem("女");
3.设置日期
//这里用了QDate这个类中的函数(这个函数的返回值就是setDate函数所需要的参数也就是日期)
ui->dE_birth->setDate(QDate::currentDate());//设置当天日期
4.设置邮箱
 QStringList strList{"qq.com","163.com","foxmail.com","sina.com"};//此变量中存的是字符串,之后作为addItems函数的参数ui->cB_emil->addItems(strList);//设置邮箱ui->cB_emil->setCurrentIndex(1);//设置下标为1的邮箱默认显示(这里0是"qq.com",1是"163.com",2是"foxmail.com",3是"sina.com"与QString链表存入的QString先后顺序有关)//ui->cB_emil->setCurrentText("163.com");//设置"163.com"邮箱默认显示
5.更新头像

将显示照片的组件大小固定,显示的图片水平,垂直居中

在这里插入图片描述

在这里插入图片描述

自定义一个槽函数
1.声明

在mianwindow.h的类中写下面代码

public slots:void slots_selete_picture();
2.定义

在mianwindow.cpp写下面代码

void MainWindow::slots_selete_picture()
{//更新头像//弹出弹出框,选择图片//下面函数需要用到头文件  #include<QFileDialog>QString str= QFileDialog::getOpenFileName(this/*父窗口*/,"请选择一张图片"/*弹出框标题*/,"C:\\Users\\冉喜文\\Pictures\\Screenshots"/*初始路径*/,"Images (*.png *.bmp *.jpg)"/*过滤,能选择的图片  注意格										   式与格式之间有空格*/); //用QSting接一下返回值qDebug()<<str;//看看返回的是什么,返回的是路径+wenif(!str.isEmpty()){//选择了一张图片//将图片设置到lable组件QPixmap pix(str);QRect rect=ui->label_picture->geometry();//动态获取显示图片组件宽度、高度pix=pix.scaled(rect.width(),rect.height(),Qt::KeepAspectRatio);//保持宽高比,缩放到指定大小ui->label_picture->setPixmap(pix);}
}
3.进行绑定连接

在mianwindow.cpp的构造函数中写下面代码

connect(ui->pB_picture,SIGNAL(clicked()),this,SLOT(slots_selete_picture()));//将信号与槽函数进行绑定连接

当点击下面的按键时,就会触发上面的槽函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wgzYM59w-1692836716846)(C:\Users\冉喜文\AppData\Roaming\Typora\typora-user-images\image-20230823232251233.png)]

6.实现更新按键的功能(这里更新的功能是将个人信息存入到文件中)
1.创建文件名

在mianwindow.cpp中写下面代码

#define FileName "32.txt"
2.创建文件

操作文件变量不应该是局部的,所以我们在mianwindow.h的类中定义出来

public:QFile file;

在mianwindow.cpp的构造函数中写下面代码

QString workPath =QDir::currentPath();//获取当前的工作路径QDir dir(workPath);if(!dir.exists()){//路径不存在,则创建路径if(dir.mkpath(workPath)){QMessageBox::critical(this,"错误","创建路径失败");exit(0);//程序退出}}QString absPathFile=dir.absoluteFilePath(FileName);//当前的工作路径和文件名做拼接,返回一个新的路径qDebug()<<"absPathFile = "<<absPathFile;//看一下路径是否正确file.setFileName(absPathFile);//与路径进行绑定if(!file.open(QIODevice::ReadWrite|QIODevice::Text)){//参数是以什么方式打开文件,这里是以可读写文本形式打开文件QMessageBox::critical(this,"错误","文件打开失败");exit(0);//程序退出}
3.将所有信息写入文件中

自定义一个槽函数

1.声明

在mianwindow.h的类中写下面代码

public slots:void slots_write();

2.定义

在mianwindow.cpp写下面代码

void MainWindow::slots_write()
{file.resize(0);//清空文件QString userInfo="%1\n%2\n%3\n%4\n%5\n%6\n%7\n%8\n%9\n";//将所有信息存入到一个QString中,这里用了灵活格式化userInfo = userInfo.arg(ui->le_nick->text())//这里接一下.arg(ui->pTE_write->toPlainText ()).arg(ui->le_name->text()).arg(ui->cB_sex->currentText ()).arg(ui->sB_age->text()).arg(ui->dE_birth->text ()).arg(ui->_tel->text ()).arg(ui->le_mail->text()+"@"+ui->cb_suffix->currentText ()).arg(ui->lineEdit->text ());qDebug ()<<"userInfo = "<<userInfo;//输出一下信息if(-1 == file.write(userInfo. toStdString().c_str())){//写入文件失败,这里参数要的是const char*类型的所以我们先将QString转为string然后再将string转为const char*QMessageBox::critical(this,"错误","用户信息写入文件失败");//错误的弹出框return;}file.flush();//刷新缓冲区,将信息及时更新到文件中QMessageBox::information(this,"提示","用户信息写入成功");//提示的弹出框
}

3.进行绑定

在mianwindow.cpp的构造函数中写下面代码

connect(ui->pB_picture,SIGNAL(clicked()),this,SLOT(slots_selete_picture()));//将信号与槽函数进行绑定连接
7.实现清空按键的功能(这里清空的功能是将个人信息全部重置为初始状态)
自定义一个槽函数
1.声明

在mianwindow.h的类中写下面代码

public slots:void slots_selete_picture();
2.定义

在mianwindow.cpp写下面代码

void MainWindow::slots_clearform()
{ui->le_nick->clear();ui->pTE_write->clear();ui->le_name->setText("");ui->cB_sex->setCurrentIndex(0);ui->sB_age->setValue(1);ui->dE_birth->setDate(QDate::currentDate());ui->le_phone->clear();ui->le_emil->clear();ui->cB_emil->setCurrentIndex(1);ui->le_school->clear();
}
3.进行绑定连接

在mianwindow.cpp的构造函数中写下面代码

connect(ui->pB_clear,SIGNAL(clicked()),this,SLOT(slots_clearform()));//将信号与槽函数进行绑定连接

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

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

相关文章

敏捷研发管理软件及敏捷管理流程

Scrum中非常强调公开、透明、直接有效的沟通&#xff0c;这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求&#xff0c;故事&#xff0c;任务之间的流转状态&#xff0c;可以使团队成员更加快速适应敏捷开发流程。 …

RK3588平台开发系列讲解(AI 篇)RKNN-Toolkit2 模型的加载

文章目录 一、Caffe模型加载接口二、TensorFlow模型加载接口三、TensorFlowLite模型加载接口四、ONNX模型加载五、ONNX模型加载六、PyTorch模型加载接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 RKNN-Toolkit2 目前支持 Caffe、TensorFlow、TensorFlowLite、ONN…

互联网医院成品功能你有哪些看法?

随着信息化的飞速发展&#xff0c;医疗领域信息化程度日益加深&#xff0c;医院对于信息化的自身需求越来越高&#xff0c;由此也推动了医院信息化的快速发展。而即时医疗信息服务能够解决普通老百姓医疗信息匮乏、花大钱看小病、就医不及时等基本问题。通过智能手机、平板电脑…

C++信息学奥赛1130:找第一个只出现一次的字符

这段代码的功能是找出输入字符串中第一个重复出现的字符&#xff0c;并输出该字符。 解析注释后的代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {string arr;getline(cin, arr); int a0;for(int i0;i<arr.length();i){for(int j0;j…

lvs-dr模式+keepalived

一&#xff0c;keepalived概述 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色的服务器&am…

枚举和反射

枚举 枚举 枚举是一种特殊的类&#xff0c;它可以有自己的属性、方法和构造方法。 两种枚举的方法 自定义枚举 a.将构造器私有化&#xff0c;防止外部直接new b.去掉set方法&#xff0c;防止属性被修改 c.在内部直接创建固定的对象 通过类名直接去访问 关键字枚举 用…

聊聊敏捷实践的“个体与交互”

这是鼎叔的第七十二篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。 敏捷宣言有重要的一句话&#xff1a;个体和交互胜过过程和工具。作为工程师&#xff0c;…

Pycharm通过SSH配置centos上Spark环境

直接在shell进行pyspark进行编程&#xff0c;程序没有办法写得太长&#xff0c;而且我们希望能够实现一个及时给出结果的编程环境&#xff0c;可以使用pycharm连接centos上的spark&#xff0c;进行本地编程&#xff0c;同步到centos系统中运行程序&#xff0c;并把结果返回pych…

Spring Boot 整合MyBatis-Plus

&#x1f600;前言 本篇博文是关于Spring Boot 整合MyBatis-Plus的&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的…

构建 NodeJS 影院预订微服务并使用 docker 部署(03/4)

一、说明 构建一个微服务的电影网站&#xff0c;需要Docker、NodeJS、MongoDB&#xff0c;这样的案例您见过吗&#xff1f;如果对此有兴趣&#xff0c;您就继续往下看吧。 你好社区&#xff0c;这是&#x1f3f0;“构建 NodeJS 影院微服务”系列的第三篇文章。本系列文章演示了…

Qt应用开发(基础篇)——纯文本编辑窗口 QPlainTextEdit

一、前言 QPlainTextEdit类继承于QAbstractScrollArea&#xff0c;QAbstractScrollArea继承于QFrame&#xff0c;是Qt用来显示和编辑纯文本的窗口。 滚屏区域基类https://blog.csdn.net/u014491932/article/details/132245486?spm1001.2014.3001.5501框架类QFramehttps://blo…

怎么把PDF转成Word?需要注意什么事项?

PDF是一种常见的文档格式&#xff0c;但是与Word文档不同&#xff0c;PDF文件通常不能直接编辑。如果您想编辑PDF文件中的文本&#xff0c;或者想将PDF文件转换为Word文档&#xff0c;下面我们就来看一看把PDF转成Word有哪些方法和注意事项。 PDF转Word工具 有许多将PDF转换为…

自动化测试之Junit

Junit引入注解参数化单参数多参数方法传参 测试用例执行顺序断言测试套件 Junit引入 Junit来编写和组织自动化测试用例&#xff0c;使用Selenium来实际模拟用户与Web应用程序的交互。也就是使用JUnit的测试功能来管理和运行Selenium测试。常见的做法是&#xff0c;使用JUnit作…

数字图像处理—— Lab、YCbCr、HSV、RGB之间互转

Lab “Lab” 图像格式通常指的是 CIELAB 色彩空间&#xff0c;也称为 Lab 色彩空间。它是一种用于描述人类视觉感知的颜色的设备无关色彩空间&#xff0c;与常见的 RGB 和 CMYK 色彩空间不同。CIELAB 由国际照明委员会&#xff08;CIE&#xff09;于1976年定义&#xff0c;用于…

PDF校对工具正式上线,为用户提供卓越的文档校对解决方案

为满足当下对数字化文档校对的精准需求&#xff0c;我们今日正式发布全新的PDF校对工具。经过深入的技术研发与细致的测试&#xff0c;该工具旨在为企业和个人用户带来一个高效且准确的PDF文档校对平台。 PDF校对工具的主要特性&#xff1a; 1.全面性校对&#xff1a;工具支持…

Sphinx——Python生成API文档

1、简介 Sphinx是Python文档生成器&#xff0c;它基于reStructuredText标记语言&#xff0c;可自动根据项目生成HTML&#xff0c;PDF等格式的文档&#xff0c;无数著名项目的文档均用Sphinx生成&#xff0c;如机器学习库scikit-learn、交互式神器Jupyter Notebook sphinx是一…

陪诊系统源码开发:实现个性化医疗陪护的创新之路

陪诊系统的源码开发在现代医疗中具有重要意义。本文将通过代码示例介绍陪诊系统的源码开发&#xff0c;展示如何实现个性化医疗陪护的创新方案。 1. 安装和环境设置&#xff1a; 首先&#xff0c;确保你的开发环境中已经安装了合适的编程语言和框架&#xff0c;比如Python和…

数据采集:selenium 获取 CDN 厂家各省市节点 IP

写在前面 工作需要遇到&#xff0c;简单整理理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&#xff0c;是人的逃避方式&#xff0c;是对…

基于XL32F003单片机的可控硅调光方案

可控硅调光是一种用于调节电源输出电压的技术&#xff0c;被广泛应用于各种场景。它主要通过改变波形的导通角度来调节输出电压的大小&#xff0c;从而实现对照明设备亮度的控制。在照明市场占据了很大的调光市场。 可控硅调光的兼容性强&#xff0c;应用范围广。例如&#xff…

fastgpt构建镜像

1.把client目录复制到服务器 .next和node_modules文件夹不用上传到服务器 在服务器目录运行 docker build -t fastgpt:1.0.3 . 构建服务 再运行 docker ps 就可以看到容器了