
绘制
wb175208
这个作者很懒,什么都没留下…
展开
-
QCustomPlot 绘制曲线
【代码】QCustomPlot 绘制曲线。原创 2023-02-01 15:39:59 · 835 阅读 · 0 评论 -
Qt自定义时间规划进度条
先看几张效果图:可以任意拖动时间轨道可以任意缩放时间轨道,缩放级别20级拖动树形节点到时间进度条上,并且可以自由添加时间的长短拖动时间的位置部分类图普通轨道类:#pragma once#include <QGraphicsItem>//基础Item,可以绘制背景色统一宽度等class PlanItem : public QGraphicsItem {public: PlanItem(QGraphicsItem* parent = nullptr);原创 2021-04-16 17:09:13 · 1294 阅读 · 2 评论 -
Qt 动态可以扩展的按钮
先看效果图:实现的功能:用户可以动态添加按钮;按钮在鼠标的移动、点击时按钮有立体的效果展示;双击鼠标左键可以修改按钮的文字;点击按钮右上角的关闭按钮可以直接删除当前按钮。定义按钮的各种状态下的颜色#pragma once#include <QColor>#include <QWidget>//基类class BaseTabBarBtn: public QWidget { Q_OBJECTpublic: BaseTabBarBtn(QWidget原创 2021-03-26 23:21:27 · 898 阅读 · 0 评论 -
Qt5.10编写俄罗斯方块
一、先看效果图二、主要的设计思路:1.采用Qt的QGraphicsScene、QGraphicsScene、QGraphicsItem实现界面的绘制;2.对每一种类型的方块单独设计一个类,所有类型的方块都是继承自同一基类;3.采用Qt的随机数生产机制,随机的生产每一种类型的方块;4.使用SQLite数据库记录历史的最高值;5.使用方向按键表示变形和移动方块;6.主绘图界面和下一个方块的提示界面,分别使用不同的类来表示。三、主要类1.不同类型的方块基类:#pragma once#inc原创 2021-02-06 21:26:25 · 1452 阅读 · 1 评论 -
QT多张图片的重叠显示
QT 中可以加载显示多张图片,如果同时显示多张图片,并且显示图片重叠的效果,就要使用CompositionMode了。注意:设置模式只能设置图片!#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>class QImage;namespace Ui {class MainWindow;}cl...原创 2019-08-09 01:25:35 · 7608 阅读 · 0 评论 -
利用Qt判断点是否在直线上
在计算机集合中一个常用的功能就是判断交集的关系,点是否在直线上也是常用的一种判断关系。点是否在直线上使用的算法有两个:1.利用向量的叉积来计算:a.构成线段的两点 A (x1,y2)和 B (x2,y2)和点C(x,y)b.线段的向量(x2-x1,y2-y1)c.p点和p2构成的向量:(x2-x,y2-y)d.这两个向量的叉积等于:(x2-x1)(y2-y)-(x2-x)(y2-y1)...原创 2019-08-03 01:14:08 · 4466 阅读 · 1 评论 -
贝塞尔曲线的绘制
先看效果:以上绘制的过程都是基于点绘制的,根据网上查找到的资料修改的:以下是源码:class MyBezier : public QMainWindow { Q_OBJECTpublic: MyBezier(QWidget *parent = Q_NULLPTR); void mousePressEvent(QMouseEvent *event)override; void...原创 2019-05-31 22:36:24 · 3901 阅读 · 1 评论 -
QCustomPlot的使用之四-响应鼠标移动和弹起事件
在项目中使用QCustomPlot过程中,会有新的需求需要满足,比如在显示的数据表格中,鼠标移动到数据线上的时候,需要实时显示当前显示的线上点的具体数据;点击这条线的时候,弹出对话框展现出数据线段的详细信息。解决思路:在不改变QCustomPlot的前提下,在其外层封装一层类,使其外层实现相应的功能。需要到的类图继续关系图:先看实现的效果:首先要找到QCustomPlot的相应的鼠标信...原创 2019-03-04 19:02:47 · 8067 阅读 · 13 评论 -
QCustomPlot的使用之三
最近项目需要绘图功能,所以还是采用QCustomPlot来绘制,首先写了几个Demo.void UserCustomPlot::plot2() { //设置渐变色背景 QLinearGradient gradient(0, 0, 0, 400); gradient.setColorAt(0, QColor(90, 90, 90)); gradient.setColorAt(0.38, ...原创 2019-02-25 15:41:25 · 1523 阅读 · 0 评论 -
QCustomPlot的使用之二
之前介绍过基于QT的绘图控件QCustomPlot的强大功能,详见我之前的文章Qt中关于绘图表QCustomPlot的使用。今天突然翻出来,熟悉了一下,顺便写了个Demo作为记录。1.新建一个类,继承自QCustomPlot:#pragma once#include "QCustomPlot.h"class User2QCustomPlot : public QCustomPlot ...原创 2019-01-23 22:25:39 · 1984 阅读 · 4 评论 -
Qt 绘制可以用鼠标拖动的线段(二)
接着上一篇文章,这个主要实现了垂直,垂直于两个线段的直线交于一点,直接看效果: 原理: 一条线段由两个点P1(x1,y1),P2(x2,y2)组成,其中的这条线段所在的直线l1的斜率可求:k0 = (y2 - y1) / (x2 - x1)在平面直角坐标系中和l1互相垂直的直线的斜率为k2 则有k0×k2 = -1也就是说两条互相垂直的直线的斜率互为负倒数。知道这个后...原创 2018-09-16 21:38:50 · 2877 阅读 · 1 评论 -
Qt 绘制可以用鼠标拖动的线段(一)
一、环境 VS2013 + QT5.7.0二、效果 1.可以创建任意多条线段; 2.鼠标在靠近到线段时产生吸附效果; 3.可以拖动任意一条线段的任意部位(线段的两个端点或者整条线段)。 效果图: 三、说明 1.创建线段的定义:线段具有起始点和终止点。//点struct PointEx { double x; double y; PointE...原创 2018-09-16 11:58:15 · 14030 阅读 · 27 评论 -
QT中双缓冲加速绘制
QT中的绘制都是在函数paintEvent(QPaintEvent *event)中绘制的,而且必须在这个函数下面绘制。 绘制简单的图形的时候效率还是不错的,但是一旦绘制的内容比较多的时候,绘制的时候就是有些卡顿了。 有的同学就是说,可以使用线程的方式,多开一个线程就可以了,但是大家不要忘了,任何绘制的过程都是在paintEvent(QPaintEvent *event) 这个函数中实现的,...原创 2018-09-06 17:05:06 · 6820 阅读 · 4 评论 -
Qt中关于绘图表QCustomPlot的使用
Qt如果只是使用QPainter绘制的话会比较慢,找到这个类QCustomPlot是利用QT封装的,效率很高,而且使用也是比较方便,自己需改了一下,放到网上,大家可以看看。 提供几个绘制的截图,很漂亮的: ...原创 2018-08-31 14:47:15 · 1084 阅读 · 0 评论 -
C++ 设计模式之外观模式
在做QGIS方面的工作时,经常会用到在地图上绘制方面的需求,比如测量面积、测量长度、计算角度等等。在绘制的时候,都会调用:paintEvent 这个函数void MainCanvas::paintEvent(QPaintEvent *event) { QgsMapCanvas::paintEvent(event); //绘制内容 ...}仔细想想,如果把所有的原创 2018-01-16 12:26:15 · 399 阅读 · 0 评论 -
C++ 绘制一个角并且在两角中间显示出具体的角度
1.先看一个效果: 2.理论基础有两条直线l1(OM)和l2(ON)构成一个夹角∠MON,大小为α,顶点为O,以O为圆心r为半径做圆,交l1和l2分别为C点和D点。做∠α的角平分线与圆O交与点A,在圆O的3点钟方向做一条直线l4,过点A做l4的垂线,垂足为B。则矩形AEFG是圆O的内接矩形。A点位置就是要打印显示具体度数的位置。 1. 圆弧的所在圆的直径取线段OM和ON中较短的一原创 2018-01-12 12:26:34 · 1472 阅读 · 6 评论