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

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

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

1.3K10

浅谈基于QT的截图工具的设计与实现

实际上,造成这种问题的根本原因在于我们重写的绘图事件没有触发,于是导致最新的效果并没有绘制到界面上,所以看不出效果。 那么,QT的绘图事件什么时候触发呢?...正文:截图思路 在介绍了QT绘图基础以后,我们终于可以开始讨论正题了:截图工具的设计与实现。实际上,截图工具实现起来并不复杂。...在本例中,我们的操作行为是按下鼠标开始截取区域,移动过程中界面绘制开始点和当前鼠标构成的矩形,松开鼠标完成区域截取。很明显,我们会利用到鼠标事件。...,会有一个矩形框闪现,原因是currX和currY还是上一次的数据,没有即时清理。...在之前的介绍中,我们一直在一个空白的窗体上进行绘图。在本节,我们将通过QT的API,来获取当前鼠标所在的屏幕图像,并把图像作为这个窗体的背景图。

48520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2...还可以在导航条前面加上图标等,就显得更加有特色。有了此控件,再也不用担心没有精美的导航了。总之这个控件在我的很多的项目中都在用,而且很多Qt界的朋友也在用,反响很热烈很好。...drawBg(&painter); //绘制文字 drawText(&painter); //绘制图标 drawIcon(&painter); //绘制边框线条...->setBrush(triangleColor); //绘制在右侧中间,根据设定的倒三角的边长设定三个点位置 int width = this->width(); int height...drawPolygon(pts); painter->restore(); } 三、效果图 [navbutton.gif] 四、开源主页 以上作品完整源码下载都在开源主页,会持续不断更新作品数量和质量

    1.3K30

    PySide6 GUI 编程(43):自定义 QWidget

    自定义绘制: paintEvent 允许开发者在控件上绘制自定义内容,比如图形、文本、图像等。通过重写这个方法,可以实现复杂的自定义界面。...使用 QPainter: 在 paintEvent 中,通常会使用 QPainter 类来执行绘制操作。QPainter 提供了丰富的绘图功能,包括绘制线条、矩形、圆形、文本等。...# 绘制一个矩形 rect = QRect(50, 100, 300, 200) painter.drawRect(rect) # 绘制文本...# 显式的设置控件的最小大小,这个值是静态值 self.setMinimumSize(100, 100) # setSizePolicy 接受两个参数,分别表示控件在水平方向和垂直方向上的大小策略...# 显式的设置控件的最小大小,这个值是静态值 self.setMinimumSize(100, 100) # setSizePolicy 接受两个参数,分别表示控件在水平方向和垂直方向上的大小策略

    37366

    Qt 用画笔对图片实现马赛克效果

    最近接了一个用 Qt 做跨平台截图工具的任务,主要功能有截图、绘制图案、马赛克、毛玻璃、文字能效果,其中马赛克功能时参考网上的文献并自己研究制作出来的,这里特意给大家分享一下。...将图片附加到窗口上以后,需要在窗口上覆盖一层透明的窗口,在这个窗口使用画笔等工具来绘制马赛克,覆盖后面的图片来实现一个视觉效果,最终保存的时候将图片和透明窗口上绘制的数据合并得到一个绘制了马赛克效果的图片...实现细节 这个透明窗口派生于 QWidget 类,在构造函数中设置窗口为透明的,这样在我们将绘制的马赛克和图片混合的时候就不会有窗口背景色了。...// 让窗口背景透明,在获取窗口绘制的数据时不显示背景色 setAttribute(Qt::WA_TranslucentBackground, true); 对窗口划分区域并根据鼠标得出马赛克绘制方块。...在绘制前你要监听鼠标在窗口上按下、弹起、移动等消息,在鼠标按下前,我们要先初始化一个 image 对象来提供我们获取颜色,并根据图片大小初始化一个坐标数组,比如我们有一个 100*100 的图片,想让马赛克的大小是

    2.3K10

    Qt开源作品30-农历控件

    一、前言 农历控件在国产linux中必备的控件之一,毕竟要适应国人的习惯,你看win10系统的日历,现在点开来直接就有农历在上面,非常方便人性化,所以在很多用Qt做的项目中,也有农历控件的应用场景,而Qt...选中日期农历文字颜色/悬停日期农历文字颜色 可设置当前月背景颜色/其他月背景颜色/选中日期背景颜色/悬停日期背景颜色 可设置三种选中背景模式,矩形背景+圆形背景+图片背景 可直接切换到上一年/下一年/上一月...painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); //绘制背景和边框...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源码笔记】深谈 Qt 绘制

    结论 在 Windows 平台 默认的 Qt 绘制,最终到底层,是直接调用指令集指令的,这有别于我最初的猜测,我以为是用 Windows API 。这着实让我吃了一惊。...QPainter::fillRect(const QRect & r, const QBrush & brush) 行 6971 C++ 只要从绘制代码,单步调试即可找到指定地点。...其实不难发现,所有的绘制在中间都必然要经过QPaintEngine。QRasterPaintEngine只不过是它的一个派生,这个后边再说。...所有的表层绘制都要经过绘制引擎来向下传递绘制信息。这是 Qt 作为一个高级框架的闪光点,在其他的 Qt 模块也有类似发现,比如控件的绘制上。...后记 对于 Qt 绘制的深入探究,可以说是受益匪浅,这篇文章只是描述了冰山一角,其实整个流程比这个简要概括要高级的多。从研究 Qt 源码至今,对整个 Qt 项目的感受与评价,已和往日截然不同。

    2.1K50

    图像标注版本3-多标注框+标注标签

    这个图像标注版本在前面多标注框基础上,增加了标注标签的选择,同时修正了一下之前绘制最后一个标注框的显示问题,现在看起来更像一个标注软件了。...对多标注框的代码重新做了优化,一个是关于正在绘制的标注框的显示问题,如果标签取消,则不予绘制,如果选择了标签才绘制出来 一、通过qt designer设计一个标签选择的自定义Dialog窗口 # -...,不断根据鼠标位置进行实时绘制 在鼠标释放事件中,增加了一个对话框选择项,确认后将相关标注项加入到bboxlist中(bboxlist相对于2.0版本有所调整) 在绘制事件中,修正了对实时标注框的单独绘制...from PyQt5.QtWidgets import QWidget, QApplication, QLabel from PyQt5.QtCore import QRect, Qt from PyQt5...], point[4]) # 绘制当前标注框的举行 # 构造矩形框的起始坐标和宽度、高度 tempx0 = min(self.x0, self.x1RealTime

    23620

    Qt编写自定义控件42-开关按钮

    一、前言 从2010年进入互联网+智能手机时代以来,各种各样的APP大行其道,手机上面的APP有很多流行的元素,开关按钮个人非常喜欢,手机QQ、360卫士、金山毒霸等,都有很多开关控制一些操作,在Qt...widgets应用项目上,在项目中应用些类似的开关按钮,估计也会为项目增添不少新鲜感。...} if (buttonStyle == ButtonStyle_Rect || buttonStyle == ButtonStyle_CircleIn) { //绘制文本和小圆...全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式...linux等,不乱码,可直接集成到Qt Creator中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。

    2.4K10

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

    但打开 Qt Creator,Win7 风格的复古的按钮是在让我难以下手。...在代码中,使用了一个布尔类型的变量 _switch_on 来表示按钮的状态,初始状态为 False,表示关闭状态。在点击按钮后,会切换状态并更新按钮的颜色。 接下来,我们需要绘制按钮的外观。...在代码中,使用了 paintEvent 方法来实现按钮的绘制。该方法会被 Qt 框架自动调用,我们可以在其中使用 QPainter 对象进行绘制操作。...在动画完成后,会调用 _on_animation_finished 方法。该方法会更新按钮的状态和颜色,并发射 switch_toggled 信号,通知应用程序按钮状态的变化。...import sys from PyQt5.QtCore import Qt, QPropertyAnimation, QRect, pyqtProperty, pyqtSignal from PyQt5

    1.3K52

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

    Qt报表实现-QPainter + QPrinter QPainter是可以在QPrinter上绘制图形和文字的,利用这个方法,可以绘制任何图形或者文字、表格等,可以实现复杂的表格绘制,如果报表比较特殊...报表绘制 实现简介 我这边里封装了一个报表打印类,用于打印报表,当前并没有传入数据和参数,实际实际项目是需要传入参数和数据的。...打印信号处理槽函数,用于接收打印信号,在这个函数里调用printOnePage去绘制要打印的报表。...void printDocument(QPrinter *printer); 打印版式设置 横向打印和纵向打印; 打印方向 Portrait 纵向,Landscape:横向 使用如下函数设置 enum...、pixmap等在printer上 drawTable(painter,no); } 测试调用代码,我是放到一个按键的槽函数里调用的: void MainWindow::on_btnReport_clicked

    1.9K21

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

    本篇文章要写的是一个通用的无边框类,确切的说这不叫控件应该叫组件才对,控件是要看得见的东西,有绘制需求的,而这个需要依附在控件上。...在QDialog窗体中可以通过设置一个属性sizeGripEnabled来实现右下角的拉伸,这个还不足以满足所有的需求,很多时候我们还需要在四个角和上下左右都能拉伸大小,这个就需要重写了,安装事件过滤器...//上侧区域 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

    PyQt5 基本窗口控件(绘图类 拖拽 剪贴板 日历时间 菜单、工具、状态栏 打印)

    窗口绘图类 1.1 QPainter 绘制文字 绘制点 1.2 QPen 1.3 QBrush 1.4 QPixmap 2. 拖拽与剪贴板 2.1 拖拽 2.2 剪贴板 QClipboard 3....窗口绘图类 1.1 QPainter 在 QWidget上执行绘图操作 在QWidget.paintEvent() 中完成,绘制方法必须在 QtGui.QPainter对象的 begin() 和 end...线的起点终点 x1, y1 -> x2, y2, 且最终笔在 x2, y2 pen.setStyle(Qt.DashLine) painter.setPen(pen)...DragLeaveEvent,当执行一个拖曳控件操作,并且鼠标指针离开该控件时,这个事件将被触发 DropEvent,当拖曳操作在目标控件上被释放时,这个事件将被触发 # _*_ coding:...QPrinter 其本质上也是一个绘图设备 QPaintDevice # _*_ coding: utf-8 _*_ # @Time : 2022/5/8 21:14 # @Author : Michael

    1.9K20

    python GUI界面设计的那些事(三)

    ---- 确定好后基本上就可以去实现了,如果是用tkinter 的话,那么就只能通过代码慢慢写了。...Qt 是由Qt Company开发的跨平台C++图形用户界面应用程序开发框架,实现了一套代码可以在所有操作系统、平台和屏幕类型上部署,从台式机、嵌入式系统到可穿戴设备、移动设备。...更多可以看官网介绍:https://www.qt.io/zh-cn/ 不过Qt 使用的是C++语言,为了能够让 python 使用上Qt 的强大功能,出现了PyQt5 和 PySide2 ,通过这两个库就能够使用...因此在python中,它的名字不叫Qt,而是叫做PySide2,但是功能是一样的,当然还有其它公司开发的PyQt5,功能也是一样的。...至于为什么会有这么多不同名字和版本,感兴趣的可以自己去了解,我们这里要使用的是PySide2,它是Qt5在python中的版本。

    1.7K20

    PyQt5安装与使用

    用 Java 难以做到与之通信,为了方便大家日常使用,所以盯上了 Python GUI 工具,试了几个 GUI 框架,最终还是看上了 PyQt5 这个使用较多,文档相对较全的工具~ PyQt5 是以 QT...库为基础,而 QT 库是一个 C++ 库和开发工具,包括图形用户界面、网络、线程、正则表达式、SQL 数据库、SVG、OpenGL、XML、用户和应用程序设置、定位和定位服务、短距离通信( NFC 和蓝牙...配置 这里主要是配置两个工具,一个是绘图工具,直接以 HTML 形式绘制工具的界面 UI,另外一个是将 HTML 界面一键转换成 py 文件的工具。...例如:我安装后的路径在 C:\Python39\Lib\site-packages\qt5_applications\Qt\bin\designer.exe Working directory 就填 $...使用 点击 PyCharm 导航栏上的 Tools -> External Tools 打开上面配置的 QtDesigner 会自动打开绘制工具: 我们选择默认的,点击 OK,就得到一个初始的界面 其中

    2K00
    领券