当前位置: 首页 > news >正文

qt QGraphicsGridLayout详解

一、概述

QGraphicsGridLayout是Qt框架中用于在QGraphicsScene中布置图形项的一个布局管理器。它类似于QWidget中的QGridLayout,但主要处理的是QGraphicsItem和QGraphicsWidget等图形项。通过合理设置网格位置、伸缩因子和尺寸,可以实现复杂而灵活的布局管理。它允许开发者在指定的行和列中放置图形项,并通过激活布局来自动计算每个图形项的位置和大小。

二、QGraphicsGridLayout类介绍

1、构造函数

  • QGraphicsGridLayout(): 默认构造函数,创建一个空的网格布局。

2、主要方法

  • void addItem(QGraphicsLayoutItem *item, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment()):将指定的图形项添加到指定的行和列,并可以选择跨越多行或多列以及指定对齐方式。
  • void addItem(QGraphicsLayoutItem *item, int row, int column, Qt::Alignment alignment = Qt::Alignment()):将指定的图形项添加到指定的行和列,并可以指定对齐方式。
  • QGraphicsLayoutItem *itemAt(int row, int column) const:返回指定位置的图形项。
  • void removeItem(QGraphicsLayoutItem *item):移除指定的 图形项。
  • void setColumnMinimumWidth(int column, qreal width):指定列的最小宽度。
  • void setRowMinimumHeight(int row, qreal height):指定行的最小高度。
  • void setColumnStretchFactor(int column, int stretch):指定列的拉伸因子。
  • void setRowStretchFactor(int row, int stretch):指定行的拉伸因子。
  • void setVerticalSpacing(qreal spacing):设置行与行之间的垂直间距。
  • void setHorizontalSpacing(qreal spacing):设置行与行之间的水平间距。
  • int rowCount() const:返回行的数量。
  • int columnCount() const:返回列的数量。

QGraphicsView *view = new QGraphicsView;
QGraphicsScene *scene = new QGraphicsScene;
QGraphicsWidget *container = new QGraphicsWidget;
QGraphicsGridLayout *gridLayout = new QGraphicsGridLayout;scene->setSceneRect(0, 0, 500, 500);
view->setScene(scene);// 创建一些按钮并添加到网格布局中
QPushButton *button1 = new QPushButton("Button 1");
QPushButton *button2 = new QPushButton("Button 2");
QPushButton *button3 = new QPushButton("Button 3");
QPushButton *button4 = new QPushButton("Button 4");// 使用 QGraphicsProxyWidget 将按钮添加到场景中
QGraphicsProxyWidget *proxy1 = scene->addWidget(button1);
QGraphicsProxyWidget *proxy2 = scene->addWidget(button2);
QGraphicsProxyWidget *proxy3 = scene->addWidget(button3);
QGraphicsProxyWidget *proxy4 = scene->addWidget(button4);// 将按钮添加到网格布局中
gridLayout->addItem(proxy1, 0, 0);
gridLayout->addItem(proxy2, 0, 1);
gridLayout->addItem(proxy3, 1, 0);
gridLayout->addItem(proxy4, 1, 1);// 设置网格布局的行和列伸缩因子
gridLayout->setRowStretchFactor(0, 1);
gridLayout->setRowStretchFactor(1, 1);
gridLayout->setColumnStretchFactor(0, 1);
gridLayout->setColumnStretchFactor(1, 1);// 将网格布局设置为容器的布局
container->setLayout(gridLayout);// 将容器添加到场景
scene->addItem(container);
view->show();

觉得有帮助的话,打赏一下呗。。

           

相关文章:

qt QGraphicsGridLayout详解

一、概述 QGraphicsGridLayout是Qt框架中用于在QGraphicsScene中布置图形项的一个布局管理器。它类似于QWidget中的QGridLayout,但主要处理的是QGraphicsItem和QGraphicsWidget等图形项。通过合理设置网格位置、伸缩因子和尺寸,可以实现复杂而灵活的布局…...

数字处理系列

&#xff08;1&#xff09;将数字转化成中文的过滤器 <template><div><p>数字转中文&#xff1a;{{ 110 | numberToChinese }}</p></div></template><script>export default {filters: {numberToChinese(num) {const chineseNums …...

基于开源Jetlinks物联网平台协议包-MQTT自定义主题数据的编解码

目录 前言 1.下载官方协议包 2.解压 3.自定义主题 4.重写解码方法 5.以下是我解析后接收到的数据 前言 最近这段时间&#xff0c;一直在用开源的Jetlinks物联网平台在学习&#xff0c;偶尔有一次机会接触到物联网设备对接&#xff0c;在协议对接的时候&#xff0c;遇到了…...

【Python】Python2.7升级Python3

需求背景 服务是跑在docker的容器里的&#xff0c;因此要新建image依赖环境是Ubuntu&#xff0c;老的是16.4。 步骤 先准备环境&#xff0c;因为只有你的环境上去了&#xff0c;运行代码的时候才会报错&#xff0c;这样才会把需要改的代码暴露出来。 python3.5目前也是被遗弃的…...

Python 内置函数 round() 详解

在 Python 编程中&#xff0c;round() 函数是一个非常实用的内置函数&#xff0c;用于对数字进行四舍五入。无论是在数据处理、财务计算还是科学计算中&#xff0c;round() 函数都能帮助我们得到所需的精确值。本文将详细介绍 round() 函数的用法和注意事项。 1. round() 函数…...

JavaScript入门中-流程控制语句

本文转载自&#xff1a;https://fangcaicoding.cn/article/52 大家好&#xff01;我是方才&#xff0c;目前是8人后端研发团队的负责人&#xff0c;拥有6年后端经验&3年团队管理经验&#xff0c;截止目前面试过近200位候选人&#xff0c;主导过单表上10亿、累计上100亿数据…...

kconfig语法(一)

一、安装Kconfiglib python -m pip install windows-curses python -m pip install kconfiglib二、使用样例 ①创建kconfig文件。 ②在kconfig文件添加内容: config KCONFIG_DEMO_ITEM1boolprompt "demonstate item1 for bool learning"config KCONFIG_DEMO_ITE…...

十七、行为型(命令模式)

命令模式&#xff08;Command Pattern&#xff09; 概念 命令模式是一种行为型设计模式&#xff0c;它将请求封装成一个对象&#xff0c;从而使您可以使用不同的请求对客户进行参数化&#xff0c;排队请求&#xff0c;以及支持可撤销操作。通过这种模式&#xff0c;调用操作的…...

原材料供应商的GRS认证证书过期了怎么办?

在全球纺织和时尚产业中&#xff0c;GRS&#xff08;Global Recycle Standard&#xff0c;全球再生标准&#xff09;认证已成为衡量企业环保和可持续发展的重要指标。然而&#xff0c;当原材料供应商的GRS认证证书过期时&#xff0c;企业需迅速采取行动&#xff0c;以确保供应链…...

C++编程:实现一个基于原始指针的环形缓冲区(RingBuffer)缓存串口数据

文章目录 0. 引言1. 使用示例2. 流程图2.1 追加数据流程2.2 获取空闲块流程2.3 处理特殊字符流程2.4 释放块流程2.5 获取下一个使用块流程 3. 代码详解3.1 Block 结构体3.2 RingBuffer 类3.3 主要方法解析append 方法currentUsed 和 currentUsing 方法release 方法nextUsed 方法…...

LangChain 创始人万字科普:手把手教你设计 Agent 用户交互

LangChain 可以算是 LLM 时代做 AI 应用开发必备的框架和平台&#xff0c;从模型选择、数据库链接与各种 Agent 搭建等&#xff0c;AI 应用的搭建、运行和管理都可以在 LangChain 上进行。 某种意义上&#xff0c;LangChain 可能是最了解 Agent&#xff08;智能体&#xff09;…...

Docker 用例:15 种最常见的 Docker 使用方法

容器化应用程序而不是将它们托管在虚拟机上是过去几年一直流行的概念&#xff0c;使容器管理流行起来。Docker 处于这一转变的核心&#xff0c;帮助组织无缝地采用容器化技术。最近&#xff0c;Docker 用例遍布所有行业&#xff0c;无论规模大小和性质如何。 什么是Docker&…...

若依 RuoYi4.6.0 代码审计

环境布置&#xff1a; 到官网下载源码&#xff1a;https://github.com/yangzongzhuan/RuoYi 采用phpstudy集成数据库&#xff0c;5.7版本。JDK1.8。 IDEA打开项目&#xff0c;等待自动加载&#xff0c;修改application-druid.yml配置文件&#xff1a;数据库名&#xff0c;账…...

C语言入门-选择结构

在编程中&#xff0c;我们经常需要根据不同的条件执行不同的操作。C语言为此提供了几种非常实用的选择结构&#xff1a;条件运算符、逻辑运算、if语句和switch语句。接下来&#xff0c;让我们深入探讨这些重要的知识点&#xff0c;帮助你更好地理解和掌握C语言的选择结构。 1.…...

Legion拯救者 刃7000K-26IAB联想台式机T5 26IAB7(90SU,90SV,90SW,90SX)原厂Windows11系统镜像下载

适用机型&#xff1a;【90SW、90SX、90SU、90SV】 链接&#xff1a;https://pan.baidu.com/s/1gJ4ZwWW2orlGYoPk37M-cg?pwd4mvv 提取码&#xff1a;4mvv lenovo联想原装WIN系统自带所有驱动、出厂主题专用壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软…...

代码随想录算法训练营第二十四天|Day24 回溯算法

93.复原IP地址 题目链接/文章讲解&#xff1a;https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1XP4y1U73i/ 思路 char** result; int resultTop; int segments[3]; int isValid(char* s…...

vue elementui table编辑表单时,弹框增加编辑明细数据

需求: 前端进行新增表单时&#xff0c;同时增加表单的明细数据。明细数据部分&#xff0c;通过弹框方式增加或者编辑。 效果图&#xff1a; 代码&#xff1a; <!-- 新增主表弹窗 Begin --><el-dialog:title"titleInfo"top"5vh"centerwidth"…...

springboot集成Redisson做分布式消息队列

这里演示Redisson做分布式消息队列。首先引入 Redisson依赖&#xff0c;官方github <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.17.6</version> </dependen…...

如何通过Lua语言请求接口拿到数据

文章目录 概要http客户端通过请求下载数据 概要 当某个需求是需要在模块内请求接口拿到数据&#xff0c;需要使用http客户端调用接口 http客户端 LuaSOC请求接口官方文档 调用&#xff1a;http.request(method,url,headers,body,opts,ca_file,client_ca, client_key, clien…...

Android 13 SystemUI 隐藏下拉快捷面板部分模块(wifi,bt,nfc等)入口

frameworks/base/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java createTileInternal(tileSpec)方法注释想隐藏的模块即可。...

FPGA二进制除法器设计:从算法原理到Verilog实现与优化

1. 项目概述&#xff1a;在FPGA中实现二进制除法在数字电路设计领域&#xff0c;尤其是在现场可编程门阵列&#xff08;FPGA&#xff09;中实现数学运算&#xff0c;除法器一直是一个颇具挑战性的课题。与加法、减法乃至乘法相比&#xff0c;除法运算在硬件实现上要复杂得多&am…...

SatGate-Proxy:开源反向代理与隧道工具部署与实战指南

1. 项目概述与核心价值最近在折腾一些需要跨地域、跨网络环境访问的应用时&#xff0c;遇到了一个老生常谈的痛点&#xff1a;如何稳定、高效地访问那些因为网络策略限制而无法直接触达的服务。这不仅仅是个人用户的需求&#xff0c;很多中小团队在部署混合云、进行远程办公或访…...

Java开发者集成OpenAI API:社区SDK核心设计与生产实践

1. 项目概述&#xff1a;一个面向Java开发者的OpenAI API集成利器如果你是一名Java后端开发者&#xff0c;最近被ChatGPT、DALLE这些AI能力深深吸引&#xff0c;想在自家的Spring Boot应用里快速集成智能对话、文本生成或者图像创作功能&#xff0c;那你大概率已经搜过“OpenAI…...

ZeroAPI:基于订阅与任务感知的AI模型智能路由插件设计与实践

1. 项目概述&#xff1a;ZeroAPI&#xff0c;一个为AI订阅服务而生的智能路由插件如果你和我一样&#xff0c;手头订阅了不止一个AI服务——比如OpenAI的ChatGPT Plus、月之暗面的Kimi、智谱AI的GLM&#xff0c;可能还有MiniMax或者通义千问——那你一定遇到过这个烦恼&#xf…...

多语言AI Agent的构建:跨语言理解与任务执行

多语言AI Agent的构建:跨语言理解与任务执行 本文面向有一定大模型应用开发基础的工程师,从原理、架构、实战三个维度完整讲解可落地的多语言AI Agent构建方案,全文约11000字,代码可直接运行。 引言 痛点引入 你是否遇到过这些场景? 运营跨境电商平台时,每个语言站点要…...

华为2288H V5服务器折腾记:LSI SAS3008阵列卡的IT与IR模式到底该怎么选?

华为2288H V5服务器实战&#xff1a;LSI SAS3008阵列卡IT与IR模式深度解析 当你第一次接触华为2288H V5服务器时&#xff0c;那块小小的LSI SAS3008阵列卡可能会让你陷入选择困难——到底该用IT模式还是IR模式&#xff1f;这个问题看似简单&#xff0c;却直接影响着服务器的存储…...

基于STM32的数控恒流源:从硬件闭环到软件PD调节的工程实践

1. 数控恒流源的核心需求与设计思路 第一次接触数控恒流源是在三年前的一个工业检测设备项目中&#xff0c;当时需要为传感器阵列提供精确的电流激励。传统模拟恒流方案遇到温度漂移问题&#xff0c;最终选择了STM32数控方案。这种方案最大的优势在于&#xff1a;硬件闭环保证响…...

工程师实战指南:从原理到选型,全面解析电池核心技术参数与应用

1. 项目概述&#xff1a;为什么我们需要重新认识电池&#xff1f;干了三十多年电气工程&#xff0c;从数字电路、模拟信号到电源设计、通信协议和微控制器&#xff0c;我几乎把电子行业的各个角落都摸了一遍。现在我在一家叫MaxVision的公司&#xff0c;专门搞那种性能极端、皮…...

在Nodejs后端服务中集成Taotoken实现稳定高效的多模型调用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Nodejs后端服务中集成Taotoken实现稳定高效的多模型调用 对于构建AI功能的后端Node.js开发者而言&#xff0c;直接对接单一模型供…...

2026年AI编程软件综合推荐 主流工具全面排行

Trae作为字节跳动打造的AI原生集成开发环境&#xff0c;代码生成准确率可达98%&#xff0c;截至2025年底累计注册用户已突破600万。2026年各类AI编程软件层出不穷&#xff0c;从新手入门到专业开发&#xff0c;适配不同需求的AI编程工具成为开发者刚需&#xff0c;选对一款合适…...