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界面布局和设计 的相关文章

  • 用 C++/Qt 编写的程序中的 RTF / doc / docx 文本提取

    我正在写一些程序Qt https en wikipedia org wiki Qt 28software 29 C 我需要从中读取文本微软Word https en wikipedia org wiki Microsoft Word RTF
  • QComboBox 下拉项边距

    我想设计我的风格QComboBox为下拉项目留出边距 现在是这样的 我想要这样的东西 我尝试过 QComboBox QAbstractItemView item margin 3px 但它不起作用 你能帮我解决这个问题吗 您想在项目之间设置
  • 在 QtCreator 中使用 .pro 和 .pri 正确(树)显示 Qt 项目

    是否可以使用项目包含文件 pri 显示不止一个额外级别 例如如果 pro文件包括 pri文件包含两个 pri files pro pri pri pri 在 QtCreator 项目 中显示具有误导性 pro pri pri pri 它根本
  • QStyledItemDelegate 绘制自定义小部件失败

    在我的一个项目中 我使用的是QTableWidget为了显示一些复杂的计算结果 为了提高表格的可读性 我需要在单个表格单元格内显示两个对齐的值 后来我想通过使用颜色或箭头等来进一步自定义小部件 为此我源自QStyledItemDelegat
  • 如何让小部件在上下文菜单出现时接收鼠标释放事件

    在Ubuntu20 04上 当上下文菜单出现时 我无法让小部件接收鼠标释放事件 而Windows可以接收 我的pyqt版本是5 15 2 我考虑过手动发送鼠标释放事件 但我不知道当上下文菜单出现时哪些系统会收到鼠标释放事件 这样做可能会导致
  • Qt 为什么使用 QString::number() 而不是 QLocale().toString()?

    我正在开发的应用程序将在许多国家推出 并且需要支持他们的语言 我一直在回顾我的代码并替换以下每个实例 QString number and QString toDouble with QLocale toString and QLocale
  • 使用 CMake 编译时更改头文件位置会导致缺少 vtable 错误

    对于一个大型 C 项目 我需要从 qmake 过渡到 CMake 但是在处理一个玩具示例时 我遇到了一些我不理解的行为 示例代码具有单个头文件 当该头文件移动到子目录中时 我收到 MainWindow 类缺少 vtable 的错误 CMak
  • 完全彻底卸载QT Creator

    问题 如何从 Linux 机器上卸载 QT Creator 我的 Debian Jessie 机器上的安装已损坏 我尝试过重新安装 修复等 但没有成功 建议我完全卸载 获取最新版本并重新安装 问题是我不确定如何执行此操作 每次我尝试时 QT
  • C++ SQL 查询构建库

    我正在寻找一个提供与 c SelectQueryBuilder 库类似功能的 c 库 http www codeproject com Articles 13419 SelectQueryBuilder Building complex a
  • 如何去除QWizard中的水平线?

    我正在研究一个样式表QWizard我想删除按钮上方的水平线 我尝试递归浏览所有小部件并将其边框设置为无 但似乎没有任何小部件具有此边框 这是我的代码 可以找到完整的可构建示例here https gist github com ardeid
  • 如何在针对 Windows XP 的情况下使用 VS2012 构建 Qt 4/5?

    我正在尝试使用 Visual Studio 2012 构建 Qt 4 8 5 Qt 5 2 1 针对 Windows XP SDK v7 1a 使用 VS2102 编译时 源代码与 SDK v7 1a 存在各种不兼容性 因此无法开箱即用 这
  • Mac OS X 上的 Qt 字体系列和样式

    我有一个基于 Qt PyQt 的 GUI 应用程序 在 Mac OS X 和其他平台 上运行 它允许用户选择字体并具有粗体和斜体选项的复选框 在更新到新的基于 Cocoa 的 Qt 时 用户发现QFontComboBox不再显示不同的字体样
  • 针对初学者的 QT 商业许可证与非商业许可证 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 QT 许可似乎非常反学习 因为据我所知 用它开发的任何东西都只能是商业的当且仅当 its entire开发是在使用商业许可证的情况下完成的
  • 了解 Qt3D 创建的网格

    我创建了一个 Qt3D 网格 如下所示 Qt3DCore QEntity newEntity new Qt3DCore QEntity Qt3DExtras QConeMesh mesh new Qt3DExtras QConeMesh m
  • QAbstractItemModel 如何表示树?

    我仍然很难理解 QAbstractItemModel 对项目的表示 有两种返回 QModelIndex 项的方法对我来说没有任何意义 QModelIndex QAbstractItemModel index int row int colu
  • 在 Qt 中,许多插槽连接到同一信号,它们在发出信号时是否按顺序调用?

    In the Qt文件说 如果多个插槽连接到一个信号 则这些插槽将 按照它们连接的顺序一个接一个地执行 当信号发出时 但在connect 功能 设置Qt ConnectionType输入为Qt QueuedConnection意思是 当控制
  • CMake AUTOMOC,文件位于不同文件夹中

    我有一个简单的 CMake 项目 proj project folder a h a cpp CMakeLists txt CMakeLists txt cmake minimum required VERSION 3 2 set CMAK
  • QByteArray 到整数

    正如您可能从标题中看出的那样 我在转换QByteArray为一个整数 QByteArray buffer server gt read 8192 QByteArray q size buffer mid 0 2 int size q siz
  • 使用 QWT 构建时出错

    我收到一个错误 undefined reference to QwtPlot QwtPlot QWidget 当我尝试构建我的项目时 即使设置中一切看起来都很好 在我的 CmakeLists txt 中我有 include director
  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入

随机推荐

  • 织梦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