首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Qt无法在小部件上绘制多个QRect

Qt是一款跨平台的C++应用程序开发框架,它提供了丰富的图形界面和功能库,可以用于开发各种类型的应用程序。在Qt中,可以使用QPainter类来进行绘图操作。

针对你提到的问题,Qt是可以在小部件上绘制多个QRect的。QRect是Qt中用于表示矩形的类,它包含了矩形的左上角坐标和宽高信息。可以通过QPainter的drawRect方法来在小部件上绘制一个或多个矩形。

下面是一个示例代码,演示了如何在一个小部件上绘制多个QRect:

代码语言:txt
复制
#include <QtWidgets>

class MyWidget : public QWidget {
public:
    MyWidget(QWidget *parent = nullptr) : QWidget(parent) {}

protected:
    void paintEvent(QPaintEvent *event) override {
        QPainter painter(this);
        painter.setPen(Qt::black);
        painter.setBrush(Qt::red);

        // 绘制多个矩形
        painter.drawRect(QRect(10, 10, 50, 50));
        painter.drawRect(QRect(70, 10, 50, 50));
        painter.drawRect(QRect(130, 10, 50, 50));
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    MyWidget widget;
    widget.show();

    return app.exec();
}

在上述代码中,我们创建了一个自定义的小部件MyWidget,并重写了其paintEvent方法。在paintEvent方法中,我们使用QPainter对象进行绘图操作,设置画笔颜色为黑色,画刷颜色为红色,然后通过drawRect方法绘制了三个不同位置和大小的矩形。

这只是一个简单的示例,你可以根据实际需求在小部件上绘制任意数量和形状的矩形。同时,Qt还提供了丰富的绘图功能和API,可以实现更复杂的绘图效果。

关于Qt的更多信息和使用方法,你可以参考腾讯云的Qt产品介绍页面:Qt产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Qt中国象棋一—— Qt 2D 绘图入门

Qt的2D绘图是基于QPainter类的。QPainter既可以绘制几何图形(点、线、矩形、椭圆、弧形、饼状图、多边形和贝塞尔曲线等)也可以绘制像素映射、图像和文字。...QPainter可以画在“绘图设备”,如QWidget、QPixmap、QImage等。 重新实现QWidget::paintEvent() 可用于订制窗口部件,并且可以设计出自己想要的风格。...一个常见的需求是二维画板显示大量的、轻量级的并且可与用户交互的项。...一、坐标系统 了解如何画出一个图形前,需要知道窗口部件的坐标系统。如图,左上角顶点是坐标原点(0,0),X轴向右为正,Y轴向下为正,默认每个像素占1×1大的像素。...二、画一条线段 绘图设备(一般是窗口部件)绘图,需要重新实现Qt的绘图事件——paintEvent。 什么情况下会产一个绘图事件呢?

1.7K10

Qt Designer中的QWidget属性表介绍

当鼠标位于该部件时就会呈现该属性设置的光标形状,对应类型为枚举类型Qt.CursorShape,可取值的范围及含义如下: image.png image.png 注意: 1、上述列表中,最后4个取值...提示信息,就是当鼠标放到控件时,会浮动出一个框显示提示信息。...whatsThis的帮助信息一般部件获得焦点后,按Shift+F1弹出显示, 如果这个快捷键被别的功能占用,则whatsThis的帮助信息可能无法展示。...Style Sheets与setFont()同一个部件使用,则如果设置冲突,样式表将优先 Qt Designer中部件的Font属性中可以设置对应部件的字体属性,包括字体的 字体簇(Family...---- 如果部件的父级对象背景具有静态渐变,则无法关闭此属性(即不能设置为False)。 警告:使用Qt Style Sheets时请小心使用此属性。

10.2K20

小白白也能学会的 PyQt 教程 —— 自定义组件 Switch Button

但打开 Qt Creator,Win7 风格的复古的按钮是让我难以下手。...代码中,使用了一个布尔类型的变量 _switch_on 来表示按钮的状态,初始状态为 False,表示关闭状态。点击按钮后,会切换状态并更新按钮的颜色。 接下来,我们需要绘制按钮的外观。...代码中,使用了 paintEvent 方法来实现按钮的绘制。该方法会被 Qt 框架自动调用,我们可以在其中使用 QPainter 对象进行绘制操作。...最后,主程序中创建了一个 QApplication 对象,实例化了 SwitchButton 类,并显示了按钮部件。这样就完成了整个 Switch Button 的实现。...import sys from PyQt5.QtCore import Qt, QPropertyAnimation, QRect, pyqtProperty, pyqtSignal from PyQt5

93341

Qt5-QtWidgets篇

什么是QT QT是一个跨平台的C++图像用户界面应用程序框架 QT1991年由奇趣科技开发 QT的优点 跨平台,几乎支持所有平台 接口简单,容易上手 一定程度上简化了内存回收机制 有很好的社区氛围 可以进行嵌入式开发...QDockWidget * 铆接部件可以有多个 + QDockWidget * dockWidget = new QDockWidget("浮动",this); + addDockWidget...->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); 中心部件 * 中心内容也只能有一个 + 文本窗口 QTextEdit...+ 文件名” 总结 + 只能有一个的是set 可以允许多个是add 对话框 模态对话框 不可以对其他窗口进行操作 QDialog dlg(this); dlg.exec(); 消息对话框 错误对话框...objectName指定的值 伪状态 :active 当小部件驻留在活动窗口中时,将设置此状态 :checked 该控件被选中时候的状态 :hover 鼠标控件上方 :pressed

1.5K20

Qt源码笔记】深谈 Qt 绘制

结论 Windows 平台 默认的 Qt 绘制,最终到底层,是直接调用指令集指令的,这有别于我最初的猜测,我以为是用 Windows API 。这着实让我吃了一惊。...QPainter::fillRect(const QRect & r, const QBrush & brush) 行 6971 C++ 只要从绘制代码,单步调试即可找到指定地点。...其实不难发现,所有的绘制中间都必然要经过QPaintEngine。QRasterPaintEngine只不过是它的一个派生,这个后边再说。...所有的表层绘制都要经过绘制引擎来向下传递绘制信息。这是 Qt 作为一个高级框架的闪光点,在其他的 Qt 模块也有类似发现,比如控件的绘制。...这段代码算是研究绘制过程中的一个礼物,这也解开了QWidget绘制的本质。至于QWidget的绘制,也是一个很有意思的东西了,以后有机会详细整理一下。

1.9K50

初步学习Qt布局

布局管理 以下是Qt手册中的《布局管理》的译文 一个Widget中,Qt布局管理系统提供了一个简单而有效的方式来自动组织子widget,以保证他们能够很好地利用可用空间。...布局,可以使用addLayout来嵌套布局;被嵌套的布局,将变成上层布局的子布局。 向布局添加widgets 添加布局到widgets时,布局过程执行如下: 1....Qt手册《Layout Management》 窗体小部件和布局 窗体小部件 窗体小部件(Widgets)是Qt中创建用户界面的主要元素。...窗体小部件的样式 样式(styles)绘制窗体小部件,并封装了GUI的外观和感觉。Qt的内置窗体小部件使用QStyle类完成几乎所有的绘制工作,以确保它们看来确实是一致的、本地窗体小部件。...QSS(Qt Style Sheets)允许自定义窗体小部件的外观。

6.9K10

Qt 常用类 (9)—— QWidget

这里的 QPaintDevice 类则是所有可绘制的对象的基类。        常用窗口类的继承关系如图所示: ?        ...独立窗口        窗口构造的时候如果有 Qt::Window 标志,那么它就是一个独立窗口,否则就是一个依附于其他独立窗口的窗口部件。...注意: 对于一个窗口部件来说,它的两套几何参数是一致的。        可见性与隐藏        可见性指的是窗口是否显示屏幕的属性。被其他窗口暂时遮挡住的窗口也属于可见的。...2)非隐藏的窗口它的父窗口可见的情况下也是可见的。         3)非隐藏的顶级窗口是可见的。        ...激活状态         当有多个独立窗口同时存在时,只有一个窗口能够处于激活状态。系统产生的键盘、鼠标等输入事件将被发送给处于激活状态的窗口。

3.5K10

图像标注版本2-多标注框

在网上能看到的图像标注版本多是图像标注版本1的代码,但图像标注不仅只保存一个标注框,通常都是多个标注框,而且要把这些标注框信息记录下来,当然代码也是在网上找到的,做了一些改动。...多标注的秘诀就在于增加一个bboxList列表,记录每次释放鼠标时的起始结束位置以及其他信息,绘制事件中,将过往的bboxList存储的点位信息重新绘制出来。....QtCore import QRect, Qt from PyQt5.QtGui import QPixmap, QPainter, QPen import sys # 重定义QLabel,实现绘制事件和各类鼠标事件...,保存标注框起始结束位置到bboxlist中 绘制事件中,重新勾画出来,这段脚本可用,但有些问题,会在版本3基础做修正。...(tempx0, tempy0, width, height) # 构造QPainter,进行矩形框绘制 painter.setPen(QPen(Qt.blue, 1,

17030

Qt开源作品14-导航按钮控件

一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本所有的CSS2...属性,配合QPainter这个无敌大法工具,没有什么不能绘制的。...还可以导航条前面加上图标等,就显得更加有特色。有了此控件,再也不用担心没有精美的导航了。总之这个控件我的很多的项目中都在用,而且很多Qt界的朋友也在用,反响很热烈很好。...drawBg(&painter); //绘制文字 drawText(&painter); //绘制图标 drawIcon(&painter); //绘制边框线条...->setBrush(triangleColor); //绘制右侧中间,根据设定的倒三角的边长设定三个点位置 int width = this->width(); int height

1.2K30

pyQt5 时时输出显示(PyCharm QtDesigner PyUIC开发)

用QtDesigner工具进行界面绘制,注意各种插件的命名,以免生成的代码自己都看不懂。 绘制好之后,再利用PyUIC把.ui文件转为.py文件。...self.horizontalLayoutWidget = QtWidgets.QWidget() self.horizontalLayoutWidget.setGeometry(QtCore.QRect...self.horizontalLayoutWidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect...(msg) self.driver_win.append(msg) Ui_MainWindow和retranslateUi都是用PyUIC生成的,需要注意的是,自动生成的添加了一个窗口部件...原本的设计是想像tk库一样,单独的线程中填充文本框,但是QT中,我没有实现这样的功能,主线程创建的text部件另外的线程去填充内容会报警告,出现段错误。

86710

Qt 报表实现(三)---QPainter+QPrinter

Qt报表实现-QPainter + QPrinter QPainter是可以QPrinter绘制图形和文字的,利用这个方法,可以绘制任何图形或者文字、表格等,可以实现复杂的表格绘制,如果报表比较特殊...QPainter *painter, int no); printWithPreview 是用于调出打印预览窗口; printDirect 是直接打印 printOnePage 是打印一页;因为可能会打印多个页...,所以这里把一页的绘制单独封装为一个函数 打印信号处理槽函数,用于接收打印信号,在这个函数里调用printOnePage去绘制要打印的报表。...纸中的起始x坐标 int m_starty; //整体表格A4纸中的起始y坐标 int m_width; //整体表格的宽 int m_height; //...、pixmap等printer drawTable(painter,no); } 测试调用代码,我是放到一个按键的槽函数里调用的: void MainWindow::on_btnReport_clicked

1.7K20

2.QT-窗口组件(QWidget),QT坐标系统,初探消息处理(信号与槽)

QWidget组件介绍 QWidget能够绘制自己(因为继承了QPaintDevice类),也能够处理用户的输入,比如点击按钮 QWidget是Qt窗口组件类的父类 Qt中每个窗口组件都可以当做一个QWidget...Qt坐标系统 介绍 Qt使用统一的坐标系统定位窗口部件的位置和大小 QWidget类为组件类提供了窗口部件所需的坐标系统成员函数 Qt里,坐标类型分为 顶级窗口部件的定位 窗口内部件的定位 窗口部件的大小设置...()  :  获取窗口内部的高度(不包括窗口标题栏的高度) const QRect&  geometry ()  :   获取窗口内部的x,y,w,h(不包括标题和窗口边框) const QRect& ...method槽 信号与槽里,Qt引进了几个新的关键字: SIGNAL :指定消息名(信号),用于connect()函数里 SLOT   : 指定消息处理函数名(槽),用于connect()函数里 Q_OBJECT...: 指定该类拥有槽(消息处理),类声明的内部开始处加上Q_OBJECT即可 slots  : 用于类中声明消息处理函数,比如: private slots: void buttonCliked

2.1K40

【MATLAB】基本绘图 ( 绘制多图 | 设置图形对话框在 Windows 界面的位置和大小 | 一个图形绘制多个图形 )

3文章目录 一、绘制多图 1、绘制多图 2、代码示例 二、设置图形对话框在 Windows 界面的位置和大小 三、一个图形绘制多个图形 一、绘制多图 ---- 1、绘制多图 存在一种绘图情况 ,...需要同时展示两条曲线 , 但是二者的 x 或 y 轴差距过大 , 需要绘制两个图中 ; 绘制每个图前 , 先调用一次 figure , 就会在新的对话框中生成一张新的图形 ; 使用示例如下 :...500 像素 ; 三、一个图形绘制多个图形 ---- 使用 subplot 可以指定内部的图形 ; subplot(m, n, 1); m 参数 : 行数 ; n 参数与 : 列数 ; 第三个参数是...); axis equal tight 执行结果 : 上面绘制出来的图的效果 , 最正确的是第 张图的样式 equal , x 轴长度 1 与 y 轴长度 1 相同 , 是最直观的效果 ;...square 样式表示的是坐标轴的 x 轴和 y 轴长度相同 ; equal tight 样式是 equal 样式基础 , 贴边切割有效曲线图形 ;

6.5K70

Qt截图软件3-实现矩形区域截图

浏览量 12 思路 首先我们先获取到当前桌面的完整图片,然后将其放到一个全屏的透明窗口之中,之后,我们在窗口上进行绘制矩形操作,然后获取到绘制的区域即可。...核心代码 新建一个screenview的界面,设置为全屏窗口模式 setWindowState(Qt::WindowActive|Qt::WindowFullScreen); 获取到桌面的完成图片,保存图片...grabWindow(0); 重写四个方法paintEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent,后面的3个鼠标方法,我们主要用来获取鼠标的位置,以便能够绘制方法里头绘制出矩形区域...)); painter.drawPixmap(0,0,originalPixmap); if(sx>=0&&sy>=0) { painter.drawRect(QRect...{ if(sx>=0&&sy>=0) { painter.drawRect(QRect(sx,sy,ex-sx,ey-sy));

1.2K10

Qt开源作品30-农历控件

一、前言 农历控件国产linux中必备的控件之一,毕竟要适应国人的习惯,你看win10系统的日历,现在点开来直接就有农历在上面,非常方便人性化,所以很多用Qt做的项目中,也有农历控件的应用场景,而Qt...选中日期农历文字颜色/悬停日期农历文字颜色 可设置当前月背景颜色/其他月背景颜色/选中日期背景颜色/悬停日期背景颜色 可设置三种选中背景模式,矩形背景+圆形背景+图片背景 可直接切换到上一年/下一年/一月...drawBg(&painter); //优先绘制选中状态,其次绘制悬停状态 if (select) { drawBgCurrent(&painter, selectBgColor...dayRect = QRect(0, 0, width, height / 1.7); painter->drawText(dayRect, Qt::AlignHCenter | Qt...dayRect = QRect(0, 0, width, height); painter->drawText(dayRect, Qt::AlignCenter, QString::number

1.7K20

Qt编写自定义控件67-通用无边框

本篇文章要写的是一个通用的无边框类,确切的说这不叫控件应该叫组件才对,控件是要看得见的东西,有绘制需求的,而这个需要依附在控件。...我们平时做的项目中,为了U界面的美观,很多会采用自定义无边框窗体来处理,自己美化标题栏等,都会面临一个相同的问题,就是设置好自定义无边框窗体以后,要自己处理窗体的移动和拉伸,如果有多个无边框窗体,很多人会想到每个地方都写重复的代码来实现移动或者拉伸...//侧区域 QRect rectBottom; //下侧区域 QRect rectLeftTop; //左上侧区域 QRect...(0, padding, padding, height - padding * 2); //侧描点区域 rectTop = QRect(padding...全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.13的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式

95120

Qt音视频开发44-实时人脸框

一、前言 人脸识别到以后,需要在实时视频上将所有人脸框绘制出来,一把来说识别人脸会有多种选择,一个是识别最大人脸,这种场景主要用于刷脸门禁,还有一种是识别所有人脸,这种场景主要用于人脸识别摄像机,就是将画面中的所有人脸识别出来发给服务器...,人脸框的数据主要是四个参数,左上角和右下角的位置,也可以说是x、y、width、height,可能有些做的比较好的还有倾斜角度,这个意义不是很大,人脸识别的速度一般都是飞快的,就算你用学习用的opencv...做识别也是非常快的,基本都是毫秒级的响应,主要的耗时操作特征值的提取,所以一般要求能够响应每个通道每秒钟25帧-30帧的画面绘制+人脸框的绘制,当然人脸框的数据可能会有多个。...用Qt绘制人脸框,核心就是一个函数,调用QPainter的drawRect方法,传入区域即可,如果花哨点的话还可以设置边框的粗细和颜色、圆角角度等,注意圆角角度使用的是drawRoundedRect而不是...::KeepAspectRatio, Qt::SmoothTransformation); if (fillImage) { QRect rect(offset / 2, offset

1.2K01

图像标注版本1-基本标注框

目前本人已经实现了四个版本: 第一个版本,最基本的图像标注,可以将标注框显示图片,这个版本在网上能见到的代码是最多的,也是最没什么难度的,参考了那么多代码,还是要感谢一下之前贡献的兄弟们。...第二个版本,最常见到的图像标注,多个标注框显示图片 第三个版本,实现了标注Label的选择,并且将结果保存下来 第四个版本,实现了基于当前位置双击后,被标注框的高亮显示和删除 第五个版本,对标注框结果进行各种类型的保存...一、自定义一个QLabel QLabel中定义初始化、鼠标点击、鼠标移动、鼠标释放和图像绘制事件。...from PyQt5.QtWidgets import QWidget, QApplication, QLabel from PyQt5.QtCore import QRect, Qt from PyQt5...(QPen(Qt.red, 2, Qt.SolidLine)) painter.drawRect(rect) 二、实例化标注框,一个主界面中显示标注框 # 窗口类 class LabelV1

21520

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券