QT界面布局和设计

2023-11-15

一、设计

	对功能和模块进行分析,然后设计对应的模块,将每个模块都用widget展示作为组件。
	工程结构示例:

在这里插入图片描述

二、完成模块

	代码分别设计各个组件,合适即可

三、主界面连接

	主界面连接各个子模块。
在这里插入代码片#include "AutoFlawDetection.h"
#include<QVBoxLayout>
#include <QPainter>
AutoFlawDetection::AutoFlawDetection(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
	this->setWindowFlags(Qt::FramelessWindowHint);
	this->IintView();
}
void AutoFlawDetection::IintView()
{
	//添加标题栏
	TitleWidget *titlebar = new TitleWidget(this);
	QVBoxLayout *layouttitlebar = new QVBoxLayout();
	layouttitlebar->addWidget(titlebar);
	ui.widget_tiltebar->setLayout(layouttitlebar);
	//主题栏
	Maintain *maintain = new Maintain(this);
	QVBoxLayout *layoutmaintain = new QVBoxLayout();
	layoutmaintain->addWidget(maintain);
	ui.widget_maintain->setLayout(layoutmaintain);
	//功能栏
	FunctionWidget *function = new FunctionWidget(this);
	QVBoxLayout *layoutfunction = new QVBoxLayout();
	layoutfunction->addWidget(function);
	ui.widget_function->setLayout(layoutfunction);
	//数据展示栏
	DataShow *datashow = new DataShow(this);
	QVBoxLayout *layoutdatashow = new QVBoxLayout();
	layoutdatashow->addWidget(datashow);
	ui.widget_dataview->setLayout(layoutdatashow);
	//材料信息
	MaterialInfo *materinfo = new MaterialInfo(this);
	QVBoxLayout *layoutmaterinfo = new QVBoxLayout();
	layoutmaterinfo->addWidget(materinfo);
	ui.widget_info->setLayout(layoutmaterinfo);
	//图像A
	ChartA *charta = new ChartA(this);
	QVBoxLayout *layoutcharta = new QVBoxLayout();
	layoutcharta->addWidget(charta);
	ui.widget_a->setLayout(layoutcharta);
	//图像B
	ChartB *chartb = new ChartB(this);
	QVBoxLayout *layoutchartb = new QVBoxLayout();
	layoutchartb->addWidget(chartb);
	ui.widget_b->setLayout(layoutchartb);
	//图像C
	ChartC *chartc = new ChartC(this);
	QVBoxLayout *layoutchartc = new QVBoxLayout();
	layoutchartc->addWidget(chartc);
	ui.widget_c->setLayout(layoutchartc);
	//图像D
	ChartD *chartd = new ChartD(this);
	QVBoxLayout *layoutchartd = new QVBoxLayout();
	layoutchartd->addWidget(chartd);
	ui.widget_d->setLayout(layoutchartd);
	//图像E
	ChartE *charte = new ChartE(this);
	QVBoxLayout *layoutcharte = new QVBoxLayout();
	layoutcharte->addWidget(charte);
	ui.widget_e->setLayout(layoutcharte);
	//图像F
	ChartF *chartf = new ChartF(this);
	QVBoxLayout *layoutchartf = new QVBoxLayout();
	layoutchartf->addWidget(chartf);
	ui.widget_f->setLayout(layoutchartf);
}

void AutoFlawDetection::paintEvent(QPaintEvent * event)
{
	//获取配置文件数据进行绘制
	QWidget::paintEvent(event);
	QPainter painter(this);
	painter.drawPixmap(rect(), QPixmap(":/Img/Img/backgroud.jpg"), QRect());
}

在主界面分别绘制widget,添加各个组件或者提升widget为窗口部件。
主界面布局如下:

在这里插入图片描述

四、效果

在这里插入图片描述

	这样一个界面布局完成,就可以开始写功能了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT界面布局和设计 的相关文章

随机推荐

  • 织梦DEDECMS EXCEL数据批量导入文章插件 支持自定义模型和字段 2021/09/13更新

    插件介绍 本插件为织梦EXCEL批量导入数据插件 支持tag导入 目前只有UTF版本 GBK版本自行转码 默认只支持普通文章模型 不包括自定义字段 需要另外模型或者添加新字段的可以联系客服收费修改 支持自定义字段和自定义模型 使用前 请先备
  • RabbitMQ交换机(扇出模式、直接模式)学习笔记

    视频地址 什么是交换机 RabbitMQ 消息传递模型的核心思想是 生产者生产的消息从不会直接发送到队列 实际上 通常生产 者甚至都不知道这些消息传递传递到了哪些队列中 情况实际上是这样的 生产者只能将消息发送到交换机 exchange 交
  • centos 安装opencv-python(及其安装错误解决方法)

    pip3 install opencv python 引入模块出错 ImportError libSM so 6 cannot open shared object file No such file or directory Import
  • css 实现背景图片拉伸

    使用css3 属性 background size background size cover 即可实现像桌面壁纸一样拉伸 以下是w3c上面的解释 语法 background size length percentage cover con
  • android反编译-修改别人apk(如何无视R文件,使用新增布局xml drawable等)

    前言 反编译是枯燥无味的 也是危险的 请务必避免包吃包住 17年写的有点乱已经重新排版 1 如果二次打包成APK给其他人使用 本文方案 2 如果只是自己使用或者有耐心的用户听你搞分身或者ROOT的 可以采用XPOSED方案 后续会补上XPO
  • 转:http协议学习系列(响应头---Response Headers)

    HTTP最常见的响应头如下所示 Allow 服务器支持哪些请求方法 如GET POST等 Content Encoding 文档的编码 Encode 方法 只有在解码之后才可以得到Content Type头指定的内容类型 利用gzip压缩文
  • Edge 浏览器『版本回退』和『关闭更新』

    前言 最近 Edge 浏览器又更新了 给整体浏览器页面布局进行大改动 之前苗条的标签页和收藏夹栏瞬间变得臃肿了 我实在无法忍受这种布局 所以我索性直接进行版本回退和设置永久关闭更新 详细步骤请看下文 Edge 浏览器版本回退官方文档 Mic
  • 刷脸支付全面爆发只是时间问题

    支付宝领先的微信支付是依附于电商的绝对优势 另一方面 微信支付凭借其10亿用户的优势 正在与支付宝抗衡 近几年来 移动支付的快速发展带动了支付技术的变革 nfc支付 二维码支付 指纹支付等支付方式活跃在我们的日常生活中 随着人脸识别技术的成
  • 【C++】反向迭代器精讲(以list为例)

    目录 二 全部代码 三 设计思路 1 讨论 2 关于迭代器文档一个小细节 结语 一 前言 如果有小伙伴还未学习普通迭代器 请参考这篇文章中的普通迭代器实现 STL list用法 试做 底层实现 花果山 程序猿的博客 CSDN博客 参考lis
  • 为什么会出现Date类型传到数据库后面的时分秒变为0?

    前言 今天写代码的时候遇到了一个问题 现在来和大家分享一下 创建时间 crea time在数据中是Datetime类型 但是当我在实体类上使用 Temporal 注解来给这个日期类型进行转换时 如果要是用 Temporal Temporal
  • sam文件学习1

    1 FLAG说明 Each bit in the FLAG field is defined as 0x0001 p the read is paired in sequencing 0x0002 P the read is mapped
  • 创建RAM程序,验证程序在DDR上的运行

    前面我们验证了程序运行在SRAM中 也就是程序运行在L2 cache中 但是对于启动操作系统 这并不够 操作系统要必须要足够大的RAM 所以我们必须要程序运行在RAM中 也就是DDR上 环境 CodeWarriorDevelopmentSt
  • jwt的token自动续约_JWT token过期自动续期解决方案

    access token 用于一般的资源请求的token refresh token access token过期后用于刷续期的token 注意设置refresh token的过期时间需比access token的过期时间长 问题场景与解决
  • 【OpenCV图像处理】1.11 形态学操作 - 开操作、闭操作、顶帽、黑帽

    形态学操作 开操作 闭操作 顶帽 黑帽 开操作 open 先腐蚀后膨胀 d s t o p
  • qml使用数组技巧

    在qml中 使用JS数组 修改里面的值 不发出change信号 my array n value 为了得到数组属性通知 你必须使用下面这个技巧 var tmp my array tmp n value 你可以做多个更改 也可以push sp
  • 设计模式:外观模式

    有些人可能炒过股票 但其实大部分人都不太懂 这种没有足够了解证券知识的情况下做股票是很容易亏钱的 刚开始炒股肯定都会想 如果有个懂行的帮帮手就好 其实基金就是个好帮手 支付宝里就有许多的基金 它将投资者分散的资金集中起来 交由专业的经理人进
  • Redis——认识Redis

    简单介绍 Redis诞生于2009年 全称是Remote Dictionary Server 远程词典服务器 是一个基于内存的键值型NoSQL数据库 特征 键值 Key value 型 value支持多种不同数据结构 功能丰富 单线程 每个
  • Qt简单的异步操作实现方法

    Qt简单的异步操作实现方法 在实际应用中 经常会遇到一些耗时操作 导致了主线程的阻塞 这时候可以使用异步操作来避免阻塞 Qt的异步操作需要使用下面的库 include
  • python写邮箱验证工具_Python编写的Linux邮件发送工具

    之前有用过Linux自带的mail工具来定时发送邮件 但是要装mailx还有配mail rc 这还比较正常 关键是到了ubantu下这工具用起来真是操蛋 如果哪天其他的unix like操作系统也有需求 那就太麻烦了 所以我用自带的pyth
  • QT界面布局和设计

    一 设计 对功能和模块进行分析 然后设计对应的模块 将每个模块都用widget展示作为组件 工程结构示例 二 完成模块 代码分别设计各个组件 合适即可 三 主界面连接 主界面连接各个子模块 在这里插入代码片 include AutoFlaw