首页
学习
活动
专区
工具
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.8K10

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时请小心使用此属性。

11K20
  • 小白白也能学会的 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

    1.2K52

    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的绘制,也是一个很有意思的东西了,以后有机会详细整理一下。

    2.1K50

    【C++】Qt:QWidget介绍与注册登陆界面示例

    下面是一些 QWidget 的主要特点和功能: 1.绘制和布局:QWidget 提供了用于绘制和布局的方法和属性。您可以使用绘图函数 QWidget 绘制自定义的图形和图像。...4.部件通信:QWidget 支持部件间的通信和信号槽机制。通过信号和槽的连接,一个 QWidget 可以发送信号并将其连接到其他 QWidget 的槽函数,以实现部件间的数据传递和交互。...控件介绍 QWidget 是 Qt 框架中的基类,用于创建用户界面的可视化组件。QWidget 包含多个子控件,可以根据需要将其他控件添加为 QWidget 的子控件。...注册登陆界面示例 打开Qt,创建widget工程,添加设计师类SubWidget,用于登录后的跳转界面。...this->setMaximumSize(800, 600); this->setMinimumSize(400, 300); // this->move(100, 100); QRect

    43910

    初步学习Qt布局

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

    7K10

    Qt 常用类 (9)—— QWidget

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

    3.6K10

    图像标注版本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,

    20330

    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部件另外的线程去填充内容会报警告,出现段错误。

    95610

    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.3K30

    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

    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.8K20

    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

    【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.8K70

    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+嵌入式

    1K20
    领券