展开

关键词

QT软件开发: 点击鼠标在窗口里绘制矩形(窗口透明背景)

、功能需求般在软件开发中,需要都有选择需求,比如:1. 截图软件,需要鼠标选择指定截图2. 录像软件,需要鼠标选择指定录像3. 图片浏览器,需要鼠标选择指定放大查看4. 视频播放器,需要鼠标选择指定放大播放...........工程下载地址: https:download.csdn.netdownloadxiaolong112662649721043499二、运行效果 setWindowFlags(Qt::FramelessWindowHint);无边框 置顶 设置窗口背景透明 setAttribute(Qt::WA_TranslucentBackground); 全显示 Widget{background-color: rgba(0, 0, 0, 150);});} Widget::~Widget(){ delete ui;} void Widget::paintEvent(QPaintEvent QWidget而非界面上布局其它控件} void Widget::mouseMoveEvent(QMouseEvent *event){ QPoint tmp_pos=event->pos(); if

5920

Qt苹果按钮滑动样式绘制

用到类:QTimer,QPaintEvent,QPainter,QRectF?首先,重写绘制事件,需要在头文件加入QPaintEvent头文件,并定义几变量。 painter.setBrush(Qt::white); painter.drawEllipse(currentValue,0.05*heightSize,0.9*heightSize,0.9*heightSize); 第1,2参数表示圆椭圆距左上角像素数 第3,4参数表示圆椭圆宽度和高度,两者相同时为圆。 绘制圆按钮 painter.restore(); }}鼠标点击进行绘制,按钮从左边滑到右边应该有运动状态。这就是定时器。 (20,20,210,160); 第1,2参数表示圆椭圆距左上角像素数。 绘制圆角矩形:paint->drawRoundRect(20,20,210,160,50,50); 前面四参数和绘制矩形参数致,最后两参数决定角圆度。

25841
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

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

    Qt自绘实现苹果按钮滑动效果

    用到类:QTimer,QPaintEvent,QPainter,QRectF?首先,重写绘制事件,需要在头文件加入QPaintEvent头文件,并定义几变量。 painter.setBrush(Qt::white); painter.drawEllipse(currentValue,0.05*heightSize,0.9*heightSize,0.9*heightSize); 第1,2参数表示圆椭圆距左上角像素数 第3,4参数表示圆椭圆宽度和高度,两者相同时为圆。 绘制圆按钮 painter.restore(); }}鼠标点击进行绘制,按钮从左边滑到右边应该有运动状态。这就是定时器。 (20,20,210,160); 第1,2参数表示圆椭圆距左上角像素数。 绘制圆角矩形:paint->drawRoundRect(20,20,210,160,50,50); 前面四参数和绘制矩形参数致,最后两参数决定角圆度。

    22521

    Qt编写自定义控件35-GIF录控件

    、前言在平时写作过程中,经常需要将些操作动作和效果图截图成gif格式,使得涵盖信息全面生动,有时候可以将整操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基本上都支持 最开始使用是ScreenGif.exe,用了很久,感觉还可以,后面朋友推荐用LICEcap.exe,体积小,压缩比高,再到后来发现有gif.h开源类,调用其中方法可以实现将多张图片合并到张 最初代码是倪大侠给,我在此基础上重完善了下,使得可以直接拖动窗体大小来改变录大小。增加了对Qt4和其他编译器支持。 二、实现功能1:可设置要录制宽高,支持右下角直接拉动改变.2:可设置变宽宽度3:可设置录控件背景颜色4:可设置录制帧数5:录制可自由拖动选择三、效果图四、头文件代码#ifndef GIFWIDGET_H . * 2:可设置变宽宽度 * 3:可设置录控件背景颜色 * 4:可设置录制帧数 * 5:录制可自由拖动选择 * #include #include gif.h class QLineEdit

    45700

    Qt开源作品31-截图控件

    、前言 截图控件在我很多项目中都有用到,尤其是嵌入式系统上软件,因为在嵌入式系统中,基本上系统都很精简,甚至连UI都没有,开机之后直接运行就是Qt程序,很多时候需要对软件进行截图保存下来, 用来编写文档和介绍,还有产品彩页之类,毕竟在板子上直接运行效果是最好,还有种办法是将系统编译成win版本,用系统截图来,但是嵌入式上很多代码其实很不方便在win上运行,甚至没法运行,而且还要外接很多接口来得到真正运行效果 , this, SLOT(saveFullOther())); menu->addAction(退出截图, this, SLOT(hide())); 取得大小 screen = new Screen QPixmap(*fullScreen); QPainter p(bgScreen); p.drawPixmap(0, 0, pix);} 三、效果图 四、开源主页 以上作品完整源码下载都在开源主页,会持续不断作品数量和质量 国内站点:https:gitee.comfeiyangqingyunQWidgetDemo 国际站点:https:github.comfeiyangqingyunQWidgetDemo 人主页:https

    33400

    30.QT-渐变之QLinearGradient、 QConicalGradient、QRadialGradient

    渐变有三种:QLinearGradient、QConicalGradient 、 QRadialGradient它们都有QGradient父类QGradient父类常用公共函数有:void QGradient ::setSpread ( Spread method );设置填充梯度,参数有: QGradient::PadSpread :填充内最接近停止颜色。 这是默认。 QGradient::RepeatSpread : 在外继续重复填充 QGradient::ReflectSpread : 在外反射填充 QGradient::setCoordinateMode QradialGradient半径渐变据圆半径来设定不同颜色构造函数函数如下: QRadialGradient ( qreal cx, qreal cy, qreal radius, qreal

    55450

    Wallpaper透视效果C++实现

    蒙版QPixmap *maskPic;裁剪后蒙版QColor *color;透视颜色int x1,x2,y1,y2;透视坐标int startX,startY;蒙版起始坐标int radius; ; painter.drawRoundedRect(0, 0, size.width(), size.height(), radius, radius); repaint();}根据鼠标位置计算出正确大小 ,这是以鼠标为中心,2*radius为长正方形,(x1,y1)是左上角坐标,(x2,y2)是右下角坐标,这两坐标构成了裁剪框,但是这坐标有可能会超出范围,旦超出,就会导致裁剪时候出现图片拉伸 接着根据限制后大小和位置,在前景图(透视图)上裁剪出相应。 startX和startY是蒙版起始位置,如果(x1,y1)超出,就意味着裁剪框将不是正方形,而蒙版却是正方形,所以必须对蒙版也进行裁剪,使蒙版大小恰好等于裁剪框大小。

    4610

    Qt编写自定义控件20-自定义饼图

    、前言上次在写可视化数据大电子看板项目时候,为了逐步移除对QChart依赖(主要是因为QChart真太垃圾了,是所有Qt模块中源码最烂,看过源码人没有不吐槽,不不支持10W级别数据量曲线展示 ,居然饼图控件,文字部分展示还用QLabel来显示,这么低效率方式都有),起初曲线图和柱状图等都用QCustomPlot替代了,就剩饼图需要自己用无敌QPainter来绘制了,绘制对应背景难度不大 ,稍微会用QPainter人都可以实现,用就是drawPie绘制即可,关键是如何在自己所在绘制对应文字和百分比,这需要找到对应,然后找到合理位置摆放文字,这可能就需要用到点数学知识了 ,从圆中心开始,给定对应角度,对应偏离值,计算偏离值对应中心点坐标,此坐标作为绘制文字中心,然后四周扩散距离即可。 目前已提供26版本dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 。不定期增加控件和完善控件,不定期SDK,欢迎各位提出建议,谢谢!

    41300

    Qt官方示例-摆动文字

    该示例演示了如何使用QBasicTimer和timerEvent对小部件进行动画处理和使用QFontMetrics确定上文本大小。? QBasicTimer是计时器低级类。 它不会在经过定时间后发出timeout()信号,而是将QTimerEvent发送到我们选择QObject。这使QBasicTimer成为QTimer轻量级替代。 我们将QWidget子类化,并重实现标准paintEvent()和timerEvent()函数以绘制和窗口小部件。另外,我们实现了公共setText()插槽,用于设置窗口文本。   QBasicTimertimer类用于定期文本窗口,从而使文本移动。text变量用于存储当前显示文本,并根据step计算摇摆线上每字符位置和颜色。 如果QBasicTimer发送了计时器事件,我们将递增step以使文本移动,然后调用QWidget::update()刷显示。其他任何计时器事件都将传递给timerEvent函数基类实现。

    39830

    Linux下截并编辑最佳工具

    ?某特定窗口?如果只需要获取截图,不对其进行编辑话,那么键盘默认快捷键就可以满足要求了。 Ctrl + PrtSc – 获取整截图并存放到剪贴板。Shift + Ctrl + PrtSc – 获取截图并存放到剪贴板。 尽管最近已经不太了,但仍然是操作截图优秀工具。在使用过程中可能会遇到这工具些缺陷。 功能概述:高级图像编辑功能(缩放、添加滤镜、颜色校正、添加图层、裁剪等)截取某截图如果需要对截图进行些预先编辑,GIMP 是不错选择。通过软件中心可以安装 GIMP。 要获取截图,可以执行以下命令:import image.pngDeepin Scrot Deepin Scrot 是基于终端截图工具。

    48011

    如何处理手势冲突 | 手势导航连载 (三)

    问题 3: 常用视图控件位于手势交互内附近吗?这问题应该简单些。注意,这问题也包括那些占据较大,且包括了手势交互视图控件。 如果您读过我们之前文章,应该会记得 强制系统手势交互 是指系统手势始终被优先处理。对 Android 10 来说,强制交互只有,那就是底部。 系统手势如下图所示:△ 从蓝色中间滑动相当于 返回 按钮;从红色向上滑动则是返回主,注意红色即为系统强制手势交互简单解法这问题最简单解决方案是,添加些内外边距,将进度条向上推到手势之外 应用可以通过 Android 10 中系统手势排除 API 来让系统边缘部分不响应系统手势。 不会,系统计算范围内切出矩形。同样,如果视图只有部分显示在内,则计算所请求矩形内可见部分。请关注下篇连载读完本文您可能会问: 为什么我们还没有讲流程图右半部分?

    98630

    QT-解决无边框界面拖动卡问题(附带源码)

    1.简介看到很多才学QT人都会问为啥无边框拖动为啥会花? 那是因为你每次拖动过程中都直在调用move()函数让QT重绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重改变坐标了,从而导致花. 2.如何解决我们参考其它软件,比如QQ,浏览器等, 可以看到我们如果在拖动它们时候,会出现虚线框.如下图所示,可以看到在白色背景下,拖出虚线框是黑色? 显然这虚线框会根据当前桌面像素点而去取反(也就是255-currentRGB).解决过程有两种方法:1) 调用win库来实现2) 自己动手写既然我们已经知道它实现过程.那我们还是自己动手写 如果想要这种效果,就将上面代码paintEvent(QPaintEvent *)函数i+=2改为i++即可.修改后效果如下所示: ?

    1.2K20

    沉浸模式 | 手势导航连载 (四)

    就手势导航而言,非粘性沉浸模式与其在早期版本 Android 上工作方式致。在此模式下,无论系统栏是否可见,每边缘能排除高度仍旧限制为 200dp。 粘性沉浸模式粘性 (sticky) 沉浸模式适合那些强烈需要使用整,并要求在整内进行触摸输入 UI。常见例子是绘图应用,以及使用滑动操作游戏。 使用粘性沉浸模式应用会有很强交互性,因此手势排除 API 限制会被移除,但限于系统栏隐藏时候。这意味着应用可以根据需要完全占用左 右边缘。 底部手势依旧会正常存在,是无法排除 强制 手势。处于粘性沉浸模式应用可能会占用两垂直边缘长度,因此底部主手势可能是用户呼出系统栏并退出应用方法。 我也希望您已经对手势交互有了理解,并将这些理解完美落实到应用开发与中去。

    43530

    用Qt写软件系列五:安全防护软件制作(1)

    引言      又有许久没有了。Qt,我心爱Qt,为了找工作不得不抛弃段时间,业余时间来学学了。本来计划要写系列关于Qt组件美化博文,但是写了几篇之后就没坚持下去了。 Trojan Assessment Platform是原型设计项目,只是实现了有限部分功能。远远还称不上是评估平台。这里侧重于用Qt做界面实现。 因为我们需要对鼠标悬停、进入、离开进行自行处理,所以我们这里重写了mousePressEvent(), mouseReleaseEvent(), enterEvent(), leaveEvent 种实现是方式是,为整主窗体添加背景图,在背景图基础上再留出放置central widget。这种效果对比如下:??      好了,这下就可以中间主体部分放置任何想放控件了。 我们这里处理很简单,是添加了图标和文本,具体代码很简单:icon_label = new QLabel(this);icon_label->setPixmap(QPixmap(:menucloud

    37770

    苹果Mac产品经理表示刘海“聪明”设计

    刘海确实能够增加显示面积,但是不是有“优”解呢?作者 | 来自镁客星球薛晨10月19日,苹果品发布会上推出了AirPods3、MacBook Pro等产品。 苹果表示,显示左右两侧边框比上代窄了24%,为3.5mm。由于顶部刘海设计,显示上下边框整体窄了60%,同样为3.5mm。也就是说,实际上苹果已经将显示器有效范围变高了。 苹果希望,与手机上刘海样,用户在长期使用或专注于其他内容时,逐渐习惯MacBook Pro上刘海。但,兼容模式无法完全去除突兀感。 款MacBook Pro上mini-LED素质极高,具备极高对比度和亮度,因此在顶部菜单栏显示黑色时,不能像OLED样做到完全不发光,而且菜单栏并没有和刘海保持齐平。 也就是说,兼容模式下刘海周边仍然会发出细微光,做不到全黑,仔细观察话,能够发现被分成3部分,刘海、菜单栏黑色、正常显示

    8610

    Qt编写自定义控件60-声音波形图

    、前言这控件源自于音乐播放器,在写该音乐播放器时候,需要将音频数据转换成对应频谱显示,采用fmod第三方库来处理(fmod声音系统是为游戏开发者准备革命性音频引擎,非常强大和牛逼),fmod +) { if (max < data.at(i)) { max = data.at(i); } if (min > data.at(i)) { min = data.at(i); } } 转化成当前坐标大小 远超qwt集成控件数量。每类都可以独立成单独控件,零耦合,每控件头文件和实现文件,不依赖其他文件,方便单控件以源码形式集成到项目中,较少代码量。 每控件都有对应单独包含该控件源码DEMO,方便参考使用。同时还提供所有控件使用集成DEMO。每控件源代码都有详细中文注释,都按照统设计规范编写,方便学习自定义控件编写。 目前已提供26版本dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 。不定期增加控件和完善控件,不定期SDK,欢迎各位提出建议,谢谢!

    81120

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

    最近想用Qt写中国象棋项目,在网上找了几例子后,发现关于绘图部分基础为0 ,于是根据项目需要学习下。 查了些网上资料,在此总结下;我比较喜欢方式是用到什么学什么,或者自己想做东西,这样学习起来目性比较强,可以快速进入。Qt2D绘图是基于QPainter类。 重实现QWidget::paintEvent() 可用于订制窗口部件,并且可以设计出自己想要风格。常见需求是在二维画板上显示大量、轻量级并且可与用户交互项。 视口、窗口、世界矩阵等概念有兴趣同志们可以深入了解下。?二、画条线段在绘图设备上(般是窗口部件上)绘图,需要重实现Qt绘图事件——paintEvent。什么情况下会产绘图事件呢? 1)当窗口部件第次显示时,系统会自动产生绘图事件2)重调整窗口部件大小3)当窗口部件被其他部件遮挡,然后又再次显示出来时,就会对隐藏产生重绘事件void Widget::paintEvent

    50110

    Simple Control:无需Root为设备添加导航栏

    文章:  20170209 初次成文应用名称:Simple Control应用包名:ace.jun.simplecontrol备注说明:无需Root  今天呢,小苏要向大家介绍款可以给手机添加导航栏应用 ~  Simple Control支持呼出隐藏导航栏,在呼出中心滑动即可呼出导航栏。 相反,向边缘方向滑动即可隐藏导航栏。应用还支持自定义呼出,使用者可定义左下右三边缘呼出,并且呼出长度宽度位置可调。 此外,Simple Control支持不同方向状态下呼出设置,用户可以自行定义各方向下导航栏呼出设置。 (呼出就是边缘粉色在此应用设置界面才会显示,在其他状态下你是看不到边缘有粉色存在~)  Simple Control支持修改导航栏背景颜色图标颜色透明度,导航栏长度宽度图标大小

    28320

    Qt坐标绘图

    坐标系简介Qt中每窗口都有自己坐标系,默认窗口左上角为坐标原点(0,0),然后水平向右依次增大(X轴),垂直向下依次增大(Y轴)。 、宽都是100像素绿色矩形,然后在点(-50,-50)绘制了同样大小(长、宽均为100像素)红色矩形,只能看到红色矩形部分。 坐标系变换是利用变换矩阵来进行,我们可以利用QTransform类来设置变换矩阵,因为般我们不需要进行改,所以这里不在涉及。下面我们只是对坐标系平移,缩放,旋转,扭曲等应用进行介绍。 0改时就会对横行进行扭曲,关于扭曲变换到底是什么效果,你观察下是很容易发现。 我们可以先利用save()函数来保存坐标系现在状态,然后进行变换操作,操作完之后,再用restore()函数将以前坐标系状态恢复,其实就是入栈和出栈操作。

    75030

    Android官方提供支持不同大小全部方法

    例如: view plain 下图展示了这布局在QVGA上显示结果。 ?下图展示了这布局在上显示结果。?可以注意到,即使大小改变,视图之前相对位置都没有改变。 你应用程序应该不实现了可自适应布局,还应该提供些方案根据配置来加载不同布局,可以通过配置限定符(configuration qualifiers)来实现。 平板和电视设备都很大,足够同时显示两面板,而手机次只能显示面板,两面板需要分开显示。 解决方案是使用nine-patch图片,它是种被特殊处理过PNG图片,你可以指定哪些可以拉伸而哪些不可以。 在下边框和右边框部分表示内容将会被放置。同时需要注意,这张图片后缀名是 .9.png。你必须要使用这后缀名,因为系统就是根据这别nine-patch图片和普通PNG图片

    18810

    扫码关注云+社区

    领取腾讯云代金券