Qt:玩转QPainter序列九(文本,文本框,填充)

前言

继续承接序列八

正文

在这里插入图片描述
在这里插入图片描述

1. drawImage系列函数 绘制图像

inline void drawImage(const QPoint &p, const QImage &image);

  • 作用: 在指定的点 p 上绘制 QImage 图像。图像的左上角将对齐到 p 点。

inline void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor);

  • 作用:QImage 中的指定区域绘制图像。
  • 参数:
    • x, y: 图像绘制的起始位置。
    • image: 要绘制的图像。
    • sx, sy: 源图像中要绘制区域的起始点。
    • sw, sh: 源图像中要绘制区域的宽度和高度。如果为负数,表示使用整个图像。
    • flags: 图像转换标志(如颜色模式)。

Qt::ImageConversionFlags 的用途

  • 格式转换: 当你绘制的图像格式与目标设备的显示格式不一致时,ImageConversionFlags 决定了图像转换的方式。例如,从彩色图像转换为单色图像时,可以指定是否使用抖动处理。

  • 颜色模式: 可以选择只使用彩色部分、单色部分或者自动选择。例如:

    Qt::AutoColor: 自动选择合适的颜色模式。
    Qt::MonoOnly: 只显示单色部分。
    Qt::ColorOnly: 只显示彩色部分。

  • 抖动处理: 对于低色深的设备或者图像,可以通过 ImageConversionFlags 来选择不同的抖动处理方式(例如有序抖动、阈值抖动、扩散抖动等)。

示例

void PlayQPainter::initcboImageFlag()
{//添加所有的Qt::ImageConversionFlagsui->cboImageFlag->addItem("ColorMode_Mask",static_cast<int>(Qt::ColorMode_Mask));ui->cboImageFlag->addItem("AutoColor",static_cast<int>(Qt::AutoColor));ui->cboImageFlag->addItem("ColorOnly",static_cast<int>(Qt::ColorOnly));ui->cboImageFlag->addItem("MonoOnly",static_cast<int>(Qt::MonoOnly));ui->cboImageFlag->addItem("AlphaDither_Mask",static_cast<int>(Qt::AlphaDither_Mask));ui->cboImageFlag->addItem("ThresholdAlphaDither",static_cast<int>(Qt::ThresholdAlphaDither));ui->cboImageFlag->addItem("OrderedAlphaDither",static_cast<int>(Qt::OrderedAlphaDither));ui->cboImageFlag->addItem("DiffuseAlphaDither",static_cast<int>(Qt::DiffuseAlphaDither));ui->cboImageFlag->addItem("NoAlpha",static_cast<int>(Qt::NoAlpha));ui->cboImageFlag->addItem("Dither_Mask",static_cast<int>(Qt::Dither_Mask));ui->cboImageFlag->addItem("DiffuseDither",static_cast<int>(Qt::DiffuseDither));ui->cboImageFlag->addItem("OrderedDither",static_cast<int>(Qt::OrderedDither));ui->cboImageFlag->addItem("ThresholdDither",static_cast<int>(Qt::ThresholdDither));ui->cboImageFlag->addItem("DitherMode_Mask",static_cast<int>(Qt::DitherMode_Mask));ui->cboImageFlag->addItem("AutoDither",static_cast<int>(Qt::AutoDither));ui->cboImageFlag->addItem("PreferDither",static_cast<int>(Qt::PreferDither));ui->cboImageFlag->addItem("AvoidDither",static_cast<int>(Qt::AvoidDither));ui->cboImageFlag->addItem("NoOpaqueDetection",static_cast<int>(Qt::NoOpaqueDetection));ui->cboImageFlag->addItem("NoFormatConversion",static_cast<int>(Qt::NoFormatConversion));//连接信号与槽connect(ui->cboImageFlag,QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this](){int index = ui->cboImageFlag->currentIndex();Qt::ImageConversionFlag style = (Qt::ImageConversionFlag)ui->cboImageFlag->itemData(index).toInt();ui->paintArea->setImageFlag(style);});
}void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置粗一点QPen pen;pen.setWidth(3);painter.setPen(pen);// 加载图像到 QPixmap,替换为你的图片路径QImage image("D:/all_the_code/qt_code/ts/playQPainter/t1.png");painter.drawImage(30,50,image,0,0,-1,-1,Qt::MonoOnly);
}

在这里插入图片描述

2.文本布局函数

void setLayoutDirection(Qt::LayoutDirection direction);

  • 作用: 设置绘制文本的布局方向(如从左到右或从右到左)。
  • 参数:
    • direction:布局方向,有LeftToRight(左到右), RightToLeft(右到左), LayoutDirectionAuto(自动)

Qt::LayoutDirection layoutDirection() const;

  • 作用: 返回当前的布局方向。

3. 绘制字形序列

void drawGlyphRun(const QPointF &position, const QGlyphRun &glyphRun);

  • 作用: 绘制一个 QGlyphRun,这是一个用于在高级文本排版中表示字形序列的类。
  • 参数:
    • position: 绘制字形的起始位置。
    • glyphRun: 包含字形序列的 QGlyphRun 对象。

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置字体QFont font("Times New Roman", 36);QRawFont rawFont = QRawFont::fromFont(font);// 创建 QGlyphRun 对象QGlyphRun glyphRun;glyphRun.setRawFont(rawFont);// 需要绘制的文本QString text = "Qt GlyphRun Test";// 生成字形索引和位置QVector<quint32> glyphIndexes;QVector<QPointF> positions;double x = 0;for (QChar ch : text) {// 获取每个字符的字形索引glyphIndexes.append(rawFont.glyphIndexesForString(QString(ch)).at(0));// 计算每个字形的位置positions.append(QPointF(x, 0));// 获取字形的横向进位,并更新 x 坐标偏移QVector<QPointF> advances = rawFont.advancesForGlyphIndexes(glyphIndexes);x += advances.last().x();}glyphRun.setGlyphIndexes(glyphIndexes);glyphRun.setPositions(positions);// 绘制位置,指定基线位置QPointF position(50, 100);// 使用 drawGlyphRun 绘制字形painter.drawGlyphRun(position, glyphRun);
}

在这里插入图片描述

4.drawStaticText系列函数 绘制静态文本

drawStaticText 函数用于绘制静态文本,静态文本在绘制时不会重新进行布局或重绘。因此,它适用于那些文本内容不会频繁变化且需要高效绘制的场景。

  • void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText);

    • 作用: 在指定的浮点坐标 topLeftPosition 处绘制 QStaticText 对象。
    • 参数:
      • topLeftPosition: 绘制起点的浮点坐标。
      • staticText: 要绘制的静态文本对象,类型为 QStaticText
  • inline void drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText);

    • 作用: 在指定的整数坐标 topLeftPosition 处绘制 QStaticText 对象。
  • inline void drawStaticText(int left, int top, const QStaticText &staticText);

    • 作用: 在指定的 (left, top) 坐标处绘制 QStaticText 对象。
3. 区别
  • 性能:

    • drawStaticText 的性能比 drawText 更高,因为它假设文本不会改变,因此可以缓存布局结果,避免每次绘制时重新计算布局。
    • drawText 每次绘制时都会重新计算文本的布局,适合文本内容动态变化的场景。
  • 用途:

    • drawStaticText 适用于绘制不经常变化的文本,如静态标签、标题等,特别是在需要反复绘制相同文本时,它的性能优势更明显。
    • drawText 则适合绘制内容可能频繁变化的文本,如用户输入的文字、实时数据显示等。
  • 文本类型:

    • drawStaticText 使用的是 QStaticText 类型,这个类型设计用于静态文本,并为静态文本的高效绘制做了优化。
    • drawText 使用的是 QString 类型,适用于一般的文本绘制。

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置字体QFont font("Arial", 14);painter.setFont(font);// 定义 QStaticText 对象QStaticText staticText("Hello, QStaticText!");// 使用 QPoint 指定的整数坐标 (50, 50) 处绘制文本QPoint topLeftPosition(50, 50);painter.drawStaticText(topLeftPosition, staticText);// 使用整数值指定的 (200, 100) 处绘制文本painter.drawStaticText(200, 100, staticText);
}

在这里插入图片描述

5. drawText系列函数 绘制文本

drawText 函数用于绘制普通文本,但是绘制时每次都会进行文本的布局计算。这使得它适合绘制内容可能频繁变化的动态文本。

  • void drawText(const QPointF &p, const QString &s);

    • 作用: 在指定的点 p 上绘制文本 s
    • 参数:
      • p: 文本绘制的起始位置。
      • s: 要绘制的字符串。
  • inline void drawText(const QPoint &p, const QString &s);

    • 作用: 在指定的点 p 上绘制文本 s
  • inline void drawText(int x, int y, const QString &s);

    • 作用: 在指定的点 (x, y) 上绘制文本 s
  • void drawText(const QPointF &p, const QString &str, int tf, int justificationPadding);

    • 作用:在指定的点 p 绘制字符串 str,并且可以使用文本标志 tf 和对齐填充 justificationPadding 来控制文本的对齐和填充效果。 justificationPadding 表示两个字符串之间的举例,它越大,两个单词之间距离越大。
  • void drawText(const QRectF &r, int flags, const QString &text, QRectF *br = nullptr);

    • 作用:在矩形区域 r 内绘制字符串 text,文本的对齐方式由 flags 参数指定。可以选择性地返回文本的实际边界矩形 br
  • void drawText(const QRect &r, int flags, const QString &text, QRect *br = nullptr);

    • 作用:与上一个函数类似,只是使用了整数类型的 QRect 代替浮
  • inline void drawText(int x, int y, int w, int h, int flags, const QString &text, QRect *br = nullptr);

    • 作用:在指定的矩形区域 (x, y, w, h) 内绘制字符串 text,并根据 flags 参数控制文本的对齐方式。可以选择性地返回文本的实际边界矩形 br
  • void drawText(const QRectF &r, const QString &text, const QTextOption &o = QTextOption());

    • 作用:在矩形区域 r 内绘制字符串 text,文本的格式由 QTextOption 对象 o 指定。QTextOption 提供了更细粒度的文本格式控制选项,例如文本对齐、换行模式、方向等。
    • 参数
      • QRectF &r:文本绘制的矩形区域。
      • QString &text:要绘制的文本内容。
      • QTextOption &o:文本选项,控制文本的格式和行为。

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置字体QFont font("Arial", 14);painter.setFont(font);// 测试 drawText(const QPointF &p, const QString &str, int tf, int justificationPadding)// justificationPadding越大,两个单词之间间距越大QPointF point1(20, 30);painter.drawText(point1, "QPointF drawText", Qt::AlignLeft, 30);// 测试 drawText(const QRect &r, int flags, const QString &text, QRect *br = nullptr)QRect rect1(20, 50, 200, 40);painter.drawRect(rect1); // 画出矩形边框painter.drawText(rect1, Qt::AlignCenter | Qt::TextWordWrap, "QRect drawText");// 测试 inline void drawText(int x, int y, int w, int h, int flags, const QString &text, QRect *br = nullptr)painter.drawText(20, 100, 200, 40, Qt::AlignRight | Qt::AlignVCenter, "x, y, w, h drawText");// 测试 drawText(const QRectF &r, const QString &text, const QTextOption &o = QTextOption())QRectF rectF1(20, 150, 200, 100);QTextOption option;option.setAlignment(Qt::AlignLeft);option.setWrapMode(QTextOption::WordWrap);painter.drawText(rectF1, "QRectF drawText with QTextOption", option);
}

在这里插入图片描述

6.boundingRect系列函数 计算绘制文本所需要的边界矩形

QPainter 类中,boundingRect 函数用于计算绘制文本所需的边界矩形。

QRectF boundingRect(const QRectF &rect, int flags, const QString &text);

  • 作用: 计算在给定的矩形 rect 内,绘制文本 text 所需的边界矩形。
  • 参数:
    • rect: 用于计算文本边界矩形的矩形区域。这个矩形定义了文本绘制的区域。
    • flags: 用于指定文本布局的标志,通常为 Qt::TextFlags,例如 Qt::AlignLeftQt::AlignRightQt::AlignCenter 等,用于控制文本的对齐方式。
    • text: 要绘制的文本字符串。
  • 返回: 返回一个 QRectF 对象,表示文本绘制所需的边界矩形。

QRect boundingRect(const QRect &rect, int flags, const QString &text);

  • 作用: 计算在给定的矩形 rect 内,绘制文本 text 所需的边界矩形。

inline QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text);

  • 作用: 计算在给定的矩形区域内,绘制文本 text 所需的边界矩形。
  • 参数:
    • x, y: 矩形区域的左上角坐标。
    • w, h: 矩形区域的宽度和高度。
    • flags: 文本布局标志。
    • text: 要绘制的文本字符串。
  • 返回: 返回一个 QRect 对象,表示文本绘制所需的边界矩形。

QRectF boundingRect(const QRectF &rect, const QString &text, const QTextOption &o = QTextOption());

  • 作用: 计算在给定的矩形 rect 内,绘制文本 text 所需的边界矩形,并考虑文本选项。
  • 参数:
    • rect: 用于计算文本边界矩形的矩形区域,类型为 QRectF
    • text: 要绘制的文本字符串。
    • o: QTextOption 对象,用于设置文本的格式选项,例如对齐方式、换行策略等。如果未提供,则使用默认选项。
  • 返回: 返回一个 QRectF 对象,表示文本绘制所需的边界矩形。

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置字体QFont font("Arial", 14);painter.setFont(font);// 文本和标志QString text = "Hello, boundingRect!";int flags = Qt::AlignLeft | Qt::AlignTop; // 文本对齐方式// 第一个重载函数: 使用 QRect 参数QRect rect(50, 50, 200, 50);QRect boundingRect1 = painter.boundingRect(rect, flags, text);painter.drawRect(boundingRect1);painter.drawText(rect, flags, text);// 第二个重载函数: 使用 (x, y, w, h) 参数QRect boundingRect2 = painter.boundingRect(300, 50, 200, 50, flags, text);painter.drawRect(boundingRect2);painter.drawText(boundingRect2, flags, text);// 第三个重载函数: 使用 QRectF 和 QTextOption 参数QRectF rectF(50, 150, 200, 50);QTextOption textOption(Qt::AlignLeft);QRectF boundingRect3 = painter.boundingRect(rectF, text, textOption);painter.drawRect(boundingRect3.toRect());painter.drawText(boundingRect3, text);
}

在这里插入图片描述

7.drawTextItem系列函数

QPainter 类中的 drawTextItem 函数用于绘制 QTextItem 对象。QTextItem 是一个文本项,包含了文本的布局信息和渲染信息。

void drawTextItem(const QPointF &p, const QTextItem &ti);

  • 作用: 使用 QTextItem 对象在指定的位置绘制文本项。

inline void drawTextItem(int x, int y, const QTextItem &ti);

  • 作用: 使用 QTextItem 对象在指定的坐标位置绘制文本项。

inline void drawTextItem(const QPoint &p, const QTextItem &ti);

  • 作用: 使用 QTextItem 对象在指定的 QPoint 位置绘制文本项。

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置字体和文本内容QFont font("Arial", 24);QString text = "Hello, Qt!";// 创建 QTextLayout 并设置其文本和字体QTextLayout textLayout(text, font);textLayout.beginLayout();// 创建一个 QTextLineQTextLine line = textLayout.createLine();line.setPosition(QPointF(0, 0));// 完成布局textLayout.endLayout();// 使用 QTextItem 绘制文本项for (int i = 0; i < textLayout.lineCount(); ++i) {QTextLine line = textLayout.lineAt(i);// 计算绘制位置QPointF position(50, 100 + i * line.height());// 在指定的位置绘制该行的文本line.draw(&painter, position);}
}

在这里插入图片描述

8. fillRect系列函数 填充矩形

  • void fillRect(const QRectF &rect, const QBrush &brush):

    • 作用: 使用 QBrush 对象填充指定的矩形区域 rectQRectF 是一个浮点矩形,表示矩形区域可以有小数值坐标。
  • inline void fillRect(int x, int y, int w, int h, const QBrush &brush):

    • 作用: 使用 QBrush 对象填充从 (x, y) 开始的宽度为 w,高度为 h 的矩形区域。
  • void fillRect(const QRect &rect, const QBrush &brush):

    • 作用: 使用 QBrush 对象填充整数坐标矩形 rect
  • void fillRect(const QRectF &rect, const QColor &color):

    • 作用: 使用 QColor 对象指定的颜色填充浮点矩形区域 rect
  • inline void fillRect(int x, int y, int w, int h, const QColor &color):

    • 作用: 使用 QColor 对象指定的颜色填充从 (x, y) 开始的宽度为 w,高度为 h 的矩形区域。
  • void fillRect(const QRect &rect, const QColor &color):

    • 作用: 使用 QColor 对象指定的颜色填充整数坐标矩形 rect
  • inline void fillRect(int x, int y, int w, int h, Qt::GlobalColor c):

    • 作用: 使用 Qt 的预定义颜色 Qt::GlobalColor 填充从 (x, y) 开始的宽度为 w,高度为 h 的矩形区域。
  • inline void fillRect(const QRect &r, Qt::GlobalColor c):

    • 作用: 使用 Qt 的预定义颜色 Qt::GlobalColor 填充整数坐标矩形 r
  • inline void fillRect(const QRectF &r, Qt::GlobalColor c):

    • 作用: 使用 Qt 的预定义颜色 Qt::GlobalColor 填充浮点矩形 r
  • inline void fillRect(int x, int y, int w, int h, Qt::BrushStyle style):

    • 作用: 使用 Qt::BrushStyle 枚举指定的样式填充从 (x, y) 开始的宽度为 w,高度为 h 的矩形区域。
  • inline void fillRect(const QRect &r, Qt::BrushStyle style):

    • 作用: 使用 Qt::BrushStyle 枚举指定的样式填充整数坐标矩形 r
  • inline void fillRect(const QRectF &r, Qt::BrushStyle style):

    • 作用: 使用 Qt::BrushStyle 枚举指定的样式填充浮点矩形 r
  • inline void fillRect(int x, int y, int w, int h, QGradient::Preset preset):

    • 作用: 使用 QGradient::Preset 预设的渐变填充从 (x, y) 开始的宽度为 w,高度为 h 的矩形区域。
  • inline void fillRect(const QRect &r, QGradient::Preset preset):

    • 作用: 使用 QGradient::Preset 预设的渐变填充整数坐标矩形 r
  • inline void fillRect(const QRectF &r, QGradient::Preset preset):

    • 作用: 使用 QGradient::Preset 预设的渐变填充浮点矩形 r

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 使用 QBrush 填充矩形QBrush brush(Qt::DiagCrossPattern);QRect rect1(10, 10, 100, 50);painter.fillRect(rect1, brush);// 使用 QColor 填充矩形QColor color(Qt::blue);QRect rect2(120, 10, 100, 50);painter.fillRect(rect2, color);// 使用 Qt::GlobalColor 填充矩形QRect rect3(230, 10, 100, 50);painter.fillRect(rect3, Qt::red);// 使用 QGradient::Preset 填充矩形QRect rect4(10, 70, 100, 50);painter.fillRect(rect4, QGradient::RadialGradient);// 使用 Qt::BrushStyle 填充矩形QRect rect5(120, 70, 100, 50);painter.fillRect(rect5, Qt::Dense7Pattern);
}

在这里插入图片描述

9.eraseRect系列函数

QPainter 类中的 eraseRect 函数用于擦除矩形区域的内容。具体来说,这些函数会将指定区域的绘图内容清除,通常将其填充为背景色或透明。以下是每个 eraseRect 函数的详细解释:

void eraseRect(const QRectF &rect);

  • 作用: 擦除 QRectF 类型的矩形区域。
  • 参数:
    • rect: QRectF 类型,指定要擦除的矩形区域。QRectF 支持浮点坐标,因此可以用于更高精度的绘图区域。

inline void eraseRect(int x, int y, int w, int h);

  • 作用: 擦除指定位置和尺寸的矩形区域。参数为整数值。

inline void eraseRect(const QRect &rect);

  • 作用: 擦除 QRect 类型的矩形区域。

例子

void PaintWidget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);QPainter painter(this);// 设置抗锯齿painter.setRenderHint(QPainter::Antialiasing, true);// 设置背景为白色painter.fillRect(rect(), Qt::white);// 绘制一个蓝色的矩形painter.fillRect(20, 20, 200, 100, Qt::blue);// 使用 eraseRect 擦除指定区域// 擦除 (50, 40) 开始的宽度为 80,高度为 50 的矩形区域painter.eraseRect(50, 40, 80, 50);// 绘制一个红色的矩形painter.fillRect(250, 20, 200, 100, Qt::red);// 使用 eraseRect 擦除 QRect 类型的矩形区域QRect rect(280, 40, 80, 50);painter.eraseRect(rect);
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/414578.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[001-07-001].Redis7缓存双写一致性之更新策略探讨

1、面试题&#xff1a; 1.只要使用缓存&#xff0c;就可能会涉及到redis缓存与数据库双存储双写&#xff0c;只要是双写&#xff0c;就存在数据一致性问题&#xff0c;那么是如何解决数据一致性问题的2.双写一致性&#xff0c;你先动缓存redis还是数据库MySQL&#xff0c;哪一个…

新能源汽车超级电容和电池能量管理系统的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 电池模型 4.2 电池荷电状态&#xff08;SOC&#xff09;估算 4.3 超级电容器模型 4.4 能量管理 5.完整工程文件 1.课题概述 新能源汽车的能量管理系统&#xff08;Energy Management System, EMS…

中国艺术孙溟㠭凿篆《无用之用》

孙溟㠭凿篆作品《无用之用》 这方作品是孙溟㠭先生用凿木的方式凿刻出来的&#xff0c;呈现出了凿痕的效果&#xff0c;与众不同。 孙溟㠭凿篆《无用之用》 孙溟㠭凿篆《无用之用》 万般皆有所用&#xff0c;取其长补余短&#xff0c;无用之用是为大用&#xff0…

JS实现高度不等的列表虚拟滚动加载

当我们拿到后台返回的1万条数据展示时&#xff0c;如果完全渲染不仅渲染的时间很长&#xff0c;也会导致浏览器性能变差&#xff0c;使用过程中还可能会导致卡顿&#xff0c;使用体验变差。 就需要我们想办法优化这种情况&#xff0c;这个时候使用虚拟滚动加载就能很好的避免这…

ESXi服务器无法安装Windows11:“不符合此版本的Windows所需最低系统要求“

目录 一、问题描述1.使用环境2.问题截图3.问题解析 二、解决方法Ⅰ1.按 ShiftF10 弹出命令提示符2.在弹出的Dos框中输入regedit&#xff0c;回车&#xff0c;进入注册表。3.打开HKEY_LOCAL_MACHINE\SYSTEM\Setup&#xff0c;并新建 LabConfig 的项&#xff0c;在 LabConfig 下创…

SAP 查询中间表

可以看到如下代码中&#xff0c;查询了底表zdbconn&#xff0c;又查了中间表ZTFI0072 DATA: gv_dbs(20) ,go_exc_ref TYPE REF TO cx_sy_native_sql_error,gv_error_text TYPE string,lv_count TYPE syst_index.SELECT SINGLE conntxtFROM zdbconn INTO gv_dbsWHERE sy…

RK3568 Android 11 蓝牙BluetoothA2dpSink 获取用于生成频谱的PCM

Android 中的 A2DP Sink A2DP Sink 在 Android 系统中主要用于 接收 其他蓝牙设备&#xff08;如手机、平板、电脑等&#xff09;发送过来的 高质量的立体声音频。简单来说&#xff0c;它让你的 Android 设备可以充当一个 蓝牙音箱 或 耳机 的角色。 核心功能&#xff1a; 接…

【Java】SpringBoot 单体项目创建 与 整合 Mybatis-Plus

文章目录 前言1. 创建项目与整合MP1.1 IDEA创建SpringBoot项目1.2 SpringBoot整合Mybatis-Plus 2. 远程仓库2.1 创建远程仓库/本地仓库2.2 Add/Commit/Push/Pull 3. 总结与补充3.1 解决refusing to merge unrelated histories3.2 总结3.3 结语 参考资料 SpringBoot 单体项目创建…

Hadoop环境搭建

一、Linux环境准备 Linux命令查询https://www.linuxcool.com/ http://linux.51yip.com/ 安装Linux虚拟机 安装 sudo apt install open-vm-tools 安装 sudo apt install open-vm-tools-desktop &#xff08;可选&#xff09;换国内源 ​​ sudo apt update 更新软件列表&…

火焰传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 IR.h文件 IR.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 火焰传感器是一种常用于检测火焰或特定波长&#xff08;760nm-1100nm&#xff09;红外光的传感器。探测角度60左右&am…

Docker占用根目录/存储空间过多如何清理?

问题背景 使用df -h查看磁盘空间时发现根目录空间不多了&#xff0c;已使用96%&#xff0c;红色警告&#xff01;&#xff01;&#xff01; 于是使用df -h /* 一层一层定位&#xff0c;终于找到了一个大文件 9G多的文件夹&#xff0c;位置是&#xff1a; /var/lib/docker/o…

无线通信-WIFI通信

文章目录 1. 基础知识2. 工作模式3. AT指令4. 常用AT指令实例5. 连接原子云6. 使用usb转ttl模块测试ATK-MW8266D7. 使用STM32F103ZET6战舰开发板透传模式8. 使用STM32F103ZET6战舰板连接原子云 1. 基础知识 ATK-ESP-01 ATK-ESP-01模块支持标准的IEEE802.11b/g/n协议&#xff0c…

【Linux】文件魔法师:时间与日历的解密

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件魔法师&#xff1a;时间与日历的解密 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码…

【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法

bug描述 uni-data-select的下拉列表值localdata是动态获取的&#xff0c;且绑定了change方法&#xff0c;在页面加载后&#xff0c;请求localdata的列表数据&#xff0c;给localdata重新赋值&#xff0c;此时发现自动触发了change方法 当前uni版本&#xff1a;^2.0.2-30709202…

Axure RP10安装教程(Pro版)

下载链接 https://ga90eobypbb.feishu.cn/docx/UyzSd4q8SoXySjxtrcac4QnVn3f Axure RP 是一款专业的快速原型设计工具。它能帮助用户高效地创建网页和移动应用的线框图、流程图、原型和规格说明文档。拥有丰富的交互组件&#xff0c;可模拟各种复杂交互效果&#xff0c;如点击…

【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果

欢迎来到《小5讲堂》 这是《千帆》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景基本信息名称简介角色指令 能力扩展组件对话开场白推荐问 模型选…

98.SAP MII功能详解(12)Workbench-Transaction Logic(For Next Loop)

目录 1.Logic->For Next Loop 2.演示 配置对象 配置连接 for循环的整体演示 1.Logic->For Next Loop 此操作用于在预定义的次数内执行任务。每次迭代都会执行直接跟随For Next循环操作的所有操作&#xff0c;直到达到To限制。 若要在达到To属性限制之前停止&…

旅行追踪和行程规划工具AdventureLog

什么是 AdventureLog &#xff1f; AdventureLog 是一种记录您的旅行并与世界分享的简单方法。您可以在日志中添加照片、笔记等。跟踪您访问过的国家、探索去过的地区和地方。您还可以查看您的旅行统计数据和里程碑。AdventureLog 旨在成为您终极的旅行伴侣&#xff0c;帮助您记…

【LLM】文生视频相关开源数据集(VidGen、Panda、Cogvideox等)

note 总结了VidGen数据集、Panda-70m数据集、Openvid数据集、OpenVid-1M数据集、Cogvideox训练数据准备过程、ShareGPT4Video数据集等在一篇综述中还总结了评估指标包括&#xff1a;峰值信噪比&#xff08;PSNR&#xff09;、结构相似性指数&#xff08;SSIM&#xff09;、Inc…

matlab 将数组从左向右翻转

目录 一、概述1、算法概述2、主要函数二、代码示例1、翻转行向量2、翻转字符元胞数组3、翻转多维数组三、参考链接本文由CSDN点云侠翻译,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、概述 1、算法概述 将数组从左向右翻转 2、主要…