网站支付页面设计/百度推广和优化哪个好

第三代软件开发-保存PDF
文章目录
- 第三代软件开发-保存PDF
- 项目介绍
- 保存PDF
- 头文件
- 源文件
- 使用
关键字:
Qt
、
Qml
、
pdf
、
painter
、
打印
项目介绍
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。
在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。
在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。
无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!
重要说明☝
☀该专栏在第三代软开发更新完将涨价
保存PDF
这个其实如果是QWidget开发,那就很简单了,直接有现成的打印模块,但是QML下是没有的,这里就需要重新写一下,首先,还是需要我们使用Qt的打印模块,
QT += printsupport
这里需要说明一下,这个文件不是原创,是在GitHub上找到另一个,完了做了修改。
头文件
#ifndef XXXX_PRINT_H
#define XXXX_PRINT_H#include <QObject>
#ifndef QT_NO_PRINTER
#include <QPrinter>
#include <QPrintDialog>
#endif
#include <QQuickItem>
#include <QJSValue>
#include <QDir>class XXXX_Print : public QQuickItem
{Q_OBJECT
// QML_ELEMENTQ_DISABLE_COPY(XXXX_Print)public:typedef enum { Print, PrintToFile, GrabOnly } GrabMode;Q_ENUMS(GrabMode);private:QSharedPointer<QQuickItemGrabResult> m_result;// 打印的qml组件QQuickItem *m_item;
#ifndef QT_NO_PRINTERQPrintDialog *m_printDialogue;QPrinter *m_printer;bool m_pagePrinted;bool m_sessionOpen;// 指定调用“print()”将产生多少份副本int m_copyCount;QPainter *m_painter;// 启用或禁用抗锯齿bool m_antialias;// 启用或禁用单色打印(例如,热敏打印机)bool m_monochrome;// 选择“打印到文件”时要打印到的文件路径(在某些平台上)QString m_filepath;QRectF m_margins;
#endifGrabMode m_mode;QString m_fileDest;QString m_fileType;int m_fileQuality;QJSValue m_callback;Q_PROPERTY(QQuickItem* item READ getItem WRITE setItem NOTIFY itemChanged)
#ifndef QT_NO_PRINTERQ_PROPERTY(QString filepath READ getFilePath WRITE setFilePath NOTIFY filePathChanged)Q_PROPERTY(QString fileDest READ fileDest WRITE setFileDest NOTIFY fileDestChanged)Q_PROPERTY(bool antialias READ getAntialias WRITE setAntialias NOTIFY antialiasChanged)Q_PROPERTY(bool monochrome READ getMonochrome WRITE setMonochrome NOTIFY monochromeChanged)// 打印的 dpi 整数分辨率Q_PROPERTY(int resolution READ getResolution WRITE setResolution NOTIFY resolutionChanged)Q_PROPERTY(int copyCount READ getCopyCount WRITE setCopyCount NOTIFY copyCountChanged)// QRectF 对象,表示以设备像素为单位的页面尺寸Q_PROPERTY(QRectF pageRect READ getPageRect NOTIFY sizeChanged)Q_PROPERTY(QRectF paperRect READ getPaperRect NOTIFY sizeChanged)Q_PROPERTY(QStringList paperSizes READ getPaperSizes)Q_PROPERTY(QString printerName READ getPrinterName WRITE setPrinterName NOTIFY printerNameChanged)Q_PROPERTY(Status status READ getStatus)
#endifpublic:XXXX_Print(QQuickItem *parent = 0);~XXXX_Print();#ifndef QT_NO_PRINTERtypedef enum {Millimeter = QPageSize::Millimeter,Point = QPageSize::Point,Inch = QPageSize::Inch,Pica = QPageSize::Pica,Didot = QPageSize::Didot,Cicero = QPageSize::Cicero,DevicePixel} Unit;Q_ENUMS(Unit)typedef enum {Idle = QPrinter::Idle,Active = QPrinter::Active,Aborted = QPrinter::Aborted,Error = QPrinter::Error,Unknown} Status;Q_ENUMS(Status)
#endifpublic slots:
#ifndef QT_NO_PRINTERbool print(QJSValue callback=QJSValue());bool setup(bool bDialogue = false);bool open();bool close();bool newPage() const;bool abort();
#endifbool grabImage(const QString &fileFormat, int quality=100, QJSValue callback=QJSValue());bool saveImage(const QString &fileName, const QString &fileFormat, int quality, QJSValue callback=QJSValue());// Property Hooks:void setItem( QQuickItem *item );
#ifndef QT_NO_PRINTERvoid setFilePath(const QString &filepath);void setFileDest(const QString &newFileDest);void setMonochrome(bool toggle);void setAntialias(bool toggle);void setMargins(double top, double right, double bottom, double left);bool setPageSize( qreal width, qreal height, Unit unit );bool setPageSize( const QString &paperSize );void setPrinterName(const QString &printerName);void setResolution(int dpi);void setCopyCount(int count);
#endifQQuickItem *getItem() const { return m_item; }
#ifndef QT_NO_PRINTERQString getFilePath() const { return m_filepath; }const QString fileDest() const { return m_fileDest; };bool getMonochrome() const { return m_monochrome; }bool getAntialias() const { return m_antialias; }QRectF getMargins() const { return m_margins; }QRectF getPageRect(Unit unit=DevicePixel) const;QRectF getPaperRect(Unit unit=DevicePixel) const;QStringList getPaperSizes() const;QString getPrinterName() const;int getResolution() const { return m_printer->resolution(); }int getCopyCount() const { return m_printer->copyCount(); }Status getStatus() const;
#endifprivate slots:bool grab();void grabbed();private:bool printGrab(const QImage &img);bool isDirExist(QString fullPath);signals:void itemChanged();void frameGrabbed(const QByteArray &imageData);void sizeChanged();void printComplete();void printError();
#ifndef QT_NO_PRINTERvoid filePathChanged();void monochromeChanged();void antialiasChanged();void marginsChanged();void printerNameChanged();void resolutionChanged();void copyCountChanged();
#endifvoid fileDestChanged();void strTestChanged();
};#endif // XXXX_PRINT_H
源文件
#include "XXXX_print.h"#include <QBuffer>
#include <QFileInfo>
#include <QPainter>
#ifndef QT_NO_PRINTER
# include <QPrintEngine>
#endif
#include <QQuickItemGrabResult>// Just for converting QByteArray:
#include <QQmlEngine>void XXXX_Print::setFileDest(const QString &newFileDest)
{if (m_fileDest == newFileDest)return;m_fileDest = newFileDest;emit fileDestChanged();
}XXXX_Print::XXXX_Print(QQuickItem *parent):QQuickItem(parent)
{
#ifndef QT_NO_PRINTERm_printDialogue = nullptr;m_printer = new QPrinter(QPrinter::ScreenResolution);m_pagePrinted = false;m_sessionOpen = false;m_copyCount = 1;m_painter = nullptr;m_antialias = true;m_monochrome = false;m_margins = QRectF(0, 0, 0, 0);m_filepath.clear();
#endifm_mode = XXXX_Print::GrabOnly;m_item = NULL;m_fileDest.clear();m_fileType.clear();m_fileQuality = 0;
}XXXX_Print::~XXXX_Print()
{
#ifndef QT_NO_PRINTERdelete m_printer;
#endif
}#ifndef QT_NO_PRINTER
/*** @brief XXXX_Print::print 打印/保存PDF(打印 setup至true)* @param callback* @return*/
bool XXXX_Print::print(QJSValue callback)
{m_mode = XXXX_Print::Print;m_callback = callback;return grab();
}
#endif/*** @brief XXXX_Print::grabImage 图片以QByteArray存储* @param fileFormat* @param quality* @param callback* @return*/
bool XXXX_Print::grabImage(const QString &fileFormat, int quality, QJSValue callback)
{m_mode = XXXX_Print::GrabOnly;m_callback = callback;m_fileType = fileFormat;m_fileQuality = quality;return grab();
}/*** @brief XXXX_Print::saveImage 保存图片,不用打开* @param fileName 图片名称* @param fileFormat 图片类型* @param quality 图片像素-1 0-100* @param callback* @return*/
bool XXXX_Print::saveImage(const QString &fileName, const QString &fileFormat, int quality, QJSValue callback)
{m_mode = XXXX_Print::PrintToFile;m_callback = callback;m_fileDest = fileName;m_fileType = fileFormat;m_fileQuality = quality;return grab();
}#ifndef QT_NO_PRINTER
/*** @brief XXXX_Print::setup 初始化打印机(true)/存储PDF(false)* @param bDialogue* @return*/
bool XXXX_Print::setup(bool bDialogue)
{m_printer->setOutputFormat(QPrinter::NativeFormat);QMarginsF margins( 0.0, 0.0, 0.0, 0.0);if( !m_printer->setPageMargins( margins, QPageLayout::Millimeter ) ){qWarning() << tr("Printer: Failed to set page margin (in mm) as configured.");return false;}QString strFilePath = QCoreApplication::applicationDirPath();m_printer->setOutputFileName(m_filepath + m_fileDest); //设置输出路径if(bDialogue){m_printDialogue = new QPrintDialog(m_printer);if( m_printDialogue->exec() == QDialog::Accepted ){m_printDialogue->deleteLater();return true;}qWarning() << "打印机初始化失败";delete m_printDialogue;}else{// HP LaserJet Pro M428f-M429f [453773]m_printer->setOutputFormat(QPrinter::PdfFormat); //设置输出格式为pdfreturn true;}return false;
}/*** @brief XXXX_Print::open 打开打印机/存储* @return*/
bool XXXX_Print::open()
{if( m_sessionOpen ){qCritical() << tr("Printer::open called while already in a multipage session. (Call 'close' first.)");return false;}m_painter = new QPainter();if( !m_painter ){qCritical() << tr("Printer::open failed to instantiate new QPainter. (Are you out of memory?)");return false;}if(!m_painter->begin(m_printer)){qCritical() << tr("Failed to initialise QPainter to QPrintDevice.");return false;}m_painter->setRenderHint(QPainter::Antialiasing, m_antialias);m_painter->setRenderHint(QPainter::TextAntialiasing, m_antialias);m_painter->setRenderHint(QPainter::SmoothPixmapTransform, m_antialias);m_sessionOpen = true;return true;
}/*** @brief XXXX_Print::close 关闭打印机/存储* @return*/
bool XXXX_Print::close()
{if( !m_sessionOpen ){qCritical() << tr("Printer::close called while not in multipage session.");return false;}delete m_painter;m_painter = nullptr;m_sessionOpen = false;return true;
}/*** @brief XXXX_Print::newPage 下一页* @return*/
bool XXXX_Print::newPage() const
{if( !m_sessionOpen ){qCritical() << tr("Printer::newPage called while not in a multipage session. (Call Printer::open first.)");return false;}return m_printer->newPage();
}/*** @brief XXXX_Print::abort 中止打印机* @return*/
bool XXXX_Print::abort()
{if( m_sessionOpen )close();return m_printer->abort();
}void XXXX_Print::setMonochrome(bool toggle)
{if( m_monochrome == toggle )return;m_monochrome = toggle;emit monochromeChanged();
}void XXXX_Print::setAntialias(bool toggle)
{if( m_antialias == toggle )return;m_antialias = toggle;emit antialiasChanged();
}void XXXX_Print::setFilePath(const QString &filepath)
{if( m_filepath == filepath )return;isDirExist(filepath);m_filepath = filepath;emit filePathChanged();
}
#endifvoid XXXX_Print::setItem(QQuickItem *item)
{if( m_item == item )return;m_item = item;emit itemChanged();
}#ifndef QT_NO_PRINTER
void XXXX_Print::setMargins(double top, double right, double bottom, double left)
{QRectF m( left, top, right-left, bottom-top );if( m_margins == m )return;m_margins = m;emit marginsChanged();
}bool XXXX_Print::setPageSize( const QString &paperSize )
{QPageSize size;// Run through each..for( int x=0; x < QPageSize::LastPageSize; x++ ){size = QPageSize((QPageSize::PageSizeId)x);if( size.name() == paperSize ){bool result = m_printer->setPageSize( size );emit sizeChanged();return result;}}qWarning() << tr("Unknown paper size: ") << paperSize << tr(" (Refer to 'paperSizes()' for valid options.)");return false;
}bool XXXX_Print::setPageSize( qreal width, qreal height, Unit unit )
{QSizeF szf(width, height);QPageSize size;switch( unit ){case DevicePixel:// Fanagle from DPI:szf /= m_printer->resolution();size = QPageSize(szf, QPageSize::Inch);break;default:size = QPageSize(szf, (QPageSize::Unit)unit);break;}bool result = m_printer->setPageSize(size);emit sizeChanged();return result;
}void XXXX_Print::setPrinterName(const QString &printerName)
{if( m_printer->printerName() == printerName )return;m_printer->setPrinterName( printerName );emit printerNameChanged();
}void XXXX_Print::setResolution(int dpi)
{if( m_printer->resolution() == dpi )return;m_printer->setResolution( dpi );emit resolutionChanged();
}void XXXX_Print::setCopyCount(int count)
{if( m_printer->copyCount() == count )return;m_printer->setCopyCount( count );emit copyCountChanged();
}QRectF XXXX_Print::getPageRect(Unit unit) const
{return m_printer->pageRect( (QPrinter::Unit)unit );
}QRectF XXXX_Print::getPaperRect(Unit unit) const
{return m_printer->paperRect( (QPrinter::Unit)unit );
}QStringList XXXX_Print::getPaperSizes() const
{QStringList results;QPageSize size;// Run through each..for( int x=0; x < QPageSize::LastPageSize; x++ ){size = QPageSize((QPageSize::PageSizeId)x);results.append( size.name() );}return results;
}XXXX_Print::Status XXXX_Print::getStatus() const
{QPrinter::PrinterState state = m_printer->printEngine()->printerState();return (XXXX_Print::Status)state;
}
#endifbool XXXX_Print::grab()
{if( !m_item ){qWarning() << tr("Printer::grab: No item source specified. (Set it with the 'item' property.)");return false;}QSharedPointer<QQuickItemGrabResult> res = m_item->grabToImage();if( !res ){qWarning() << tr("Printer::grab: Grab failed for some reason. (Is the item loaded and rendered?)");return false;}connect( res.data(), SIGNAL(ready()), this, SLOT(grabbed()) );m_result = res;return true;
}#ifndef QT_NO_PRINTER
bool XXXX_Print::printGrab(const QImage &img)
{if( !m_sessionOpen ){qCritical() << tr("Printer: Attempt to print without first calling Printer::open(). (This behaviour changed in 1.2)");;return false;}if( m_monochrome )m_painter->drawImage( m_printer->paperRect(QPrinter::DevicePixel), img.convertToFormat(QImage::Format_Mono, Qt::MonoOnly | Qt::ThresholdDither) );elsem_painter->drawImage( m_printer->paperRect(QPrinter::DevicePixel), img );return true;
}/*** @brief XXXX_Print::isDirExist 判断文件夹是否存在,不存在则创建* @param fullPath* @return*/
bool XXXX_Print::isDirExist(QString fullPath)
{
// QString strFilePath = QCoreApplication::applicationDirPath();QDir dir(fullPath);if(dir.exists()){return true;}else{return dir.mkdir(fullPath);}
}
#endifvoid XXXX_Print::grabbed()
{const QImage img = m_result.data()->image();m_result.clear();QQmlEngine *jse = qmlEngine(this);jse->collectGarbage();bool ret = true;if( m_mode == XXXX_Print::PrintToFile ){ret = img.save(m_fileDest, m_fileType.toStdString().c_str(), m_fileQuality);if( m_callback.isCallable() ){QJSValueList args;args << ret;m_callback.call(args);}}
#ifndef QT_NO_PRINTERelse if( m_mode == XXXX_Print::Print ){ret = printGrab(img);if( m_callback.isCallable() ){QJSValueList args;args << ret;m_callback.call(args);}}
#endifelse if( m_callback.isCallable() ){QImage image;QByteArray ba;QBuffer buffer(&ba);buffer.open(QIODevice::WriteOnly);// 此函数将 QImage 写入给定设备ret = img.save(&buffer, m_fileType.toStdString().c_str(), m_fileQuality);buffer.close();if( ret ){QJSValueList args;args << jse->toScriptValue<QByteArray>(ba);m_callback.call( args );}}// m_callback = QJSValue();if( ret )emit printComplete();elseemit printError();
}#ifndef QT_NO_PRINTER
QString XXXX_Print::getPrinterName() const
{return m_printer->printerName();
}
#endif
使用
XXX_Print {id: printPDFfilepath: pdfFilePathfileDest: "/" + UserProfile.userName + dateString +".pdf"antialias: falsemonochrome: falseonPrintComplete: console.log("Print complete.");onPrintError: console.log("Print error!");Component.onCompleted: scanPaperSizes();function scanPaperSizes(){printPDF.setPageSize( 'A4' );printPDF.setMargins(0,0,0,0)}}

相关文章:

044_第三代软件开发-保存PDF
第三代软件开发-保存PDF 文章目录 第三代软件开发-保存PDF项目介绍保存PDF头文件源文件使用 关键字: Qt、 Qml、 pdf、 painter、 打印 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Languageÿ…...

2023红帽论坛:构建开放AI生态,助力企业数字革新之路
随着人工智能技术的飞速发展,各行各业正面临着一场前所未有的数字化转型浪潮。尤其是AIGC(人工智能生成内容)技术自2022年底以来的蓬勃兴起,不仅重塑了用户体验,也为企业运营带来了深刻的变革。 在这样的大背景下&…...

阿里云国际站和华为云国际站之间该如何选择?
阿里云国际站和华为云国际站都是知名的云计算服务提供商,它们各自具有一些独特的优势和劣势。以下是它们之间的一些对比,九河云根据不同的使用场景提供的建议: 阿里云国际站: 优势: 全球覆盖:阿里云国际…...

JavaScript设计模式之责任链模式
适用场景:一个完整的流程,中间分成多个环节,各个环节之间存在一定的顺序关系,同时中间的环节的个数不一定,可能添加环节,也可能减少环节,只要保证顺序关系就可以。 如下图: ES5写法…...

云安全—kubelet攻击面
0x00 前言 虽然说总结的是kubelet的攻击面,但是在总结攻击面之前还是需要去了解kubelet的基本原理,虽然说我们浅尝即止,但是还是要以能给别人讲出来为基本原则。 其他文章: 云安全—K8s APi Server 6443 攻击面云安全—K8S API Server 未授…...
leetcode经典面试150题---5.多数元素
目录 题目描述 前置知识 代码 方法一 排序法 思路 实现 复杂度 方法二 哈希表 思路 实现 题目描述 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给…...

Vue ElementUI el-tooltip 全局样式修改
el-tooltip 要点 此处是全局配置;如果想设置指定的 tooltip 可设置属性 popper-class,为 tooltip 的 popper 添加类名;代码 6 - 8 行,隐藏小三角; .el-tooltip__popper {border-radius: 4px !important;color: #9E9…...

MATLAB_5MW风电永磁直驱发电机-1200V直流并网MATLAB仿真模型
仿真软件:matlab2016b 风机传动模块、PMSG模块、蓄电池模块、超级电容模块、无穷大电源、蓄电池控制、风机控制、逆变器控制等模块。 逆变器输出电压: 混合储能系统SOC: 威♥关注“电击小子程高兴的MATLAB小屋”获取更多精彩资料࿰…...

11.4商业伦理(全)
大型工商业城市和小城市的商业伦理道德水平是否存在差异,如果有,存在哪些差异? 伦理道德对产业分工的影响 产业层级越高,需要的商业伦理道德水平越高 产业级别越高,利润率越高 去中心化的去信任化的比特币会不会取…...

【漏洞复现】S2-045 Remote Code Execution(CVE-2017-5638)
感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描nacs3、漏洞验证 1.5、修复建议 说明内容漏洞编号CVE-2017-5638漏洞名称S2-045 远程代码执行漏…...

Linux----------------Shell重定向输入输出
(一) 标准输入 以键盘读取用户输入的数据,然后再把数据拿到 Shel程序中使用。 标准输出 Shell 程序产生的数据,这些数据一般都是呈现到显示器上供用户浏览查看 输入输出重定向 输入方向就是数据从哪里流向程序。数据默认从键…...

apachesolr中简单使用
core使用 首先点击add core 可以看到报错solrconfig.xml不在new_core目录下,new_core是我们点击后自动创建的 那么我们将D:\solr2\solr-9.3.0\solr-9.3.0\server\solr\configsets下的任何一个目录下的conf拷贝到new_core过去 这里是使用_default下的conf目录拷贝…...

C++多线程编程:其一、thread类概述
thread是C11版本中出现的线程对象,可以让程序员非常方便地创建线程。 非空的thread对象创建以后,线程就会自动运行起来。简单地理解,一个线程对象中会传入一个函数指针,之后编译器会构造一个栈,将这个函数指针压栈。函…...

C++11 initializer_list 轻量级初始化列表的使用场景(让自定义类可以用初始化列表的形式来实例化对象)
initializer_list 是 C11 中的一个特性,它允许你使用花括号 {} 中的值列表来初始化容器或数组。通常用于初始化标准库容器,比如 std::vector、std::set、std::map 以及数组。 场景一:用初始化列表初始化容器 std::vector<int> arr {…...

请求地址‘/operlog‘,发生未知异常
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是全栈工…...

Makefile 保姆级使用教程
目录 Makefile 规则 Makefile的使用介绍 make 命令的使用 即时变量、延时变量介绍和使用 使用make命令编译多个文件 假想目标 常用函数 1.$(foreach var,list,text) 2.$(wildcard pattern) 3.$(filter pattern...,text) 4.$(filter-out pattern...,text) 5.$(patsub…...

【GitHub】Watch、Star、Fork、Follow 有什么区别?
目录 一、前言二、区别1. Watch2. Star3. Fork4. Follow 一、前言 GitHub 是最受欢迎的代码托管平台之一,拥有大量的开源代码可供学习。 Github 中也有类似 “点赞”、“收藏”、“加关注” 的功能。 下面介绍下,GitHub 中 Watch、Star、Fork、Follow 有…...

MyBatis实现多表映射、分页显示、逆向工程
目录 一、MyBatis实现多表映射 1.1 实体类设计 1.2 一对一关系实现案例 1.3 对多配置实现案例 1.4 设置自动映射与n张表关联映射 二、MyBatis实现分页功能 2.1 mybatis插件工作原理 2.2 引入插件与插件的使用 三、逆向工程插件 3.1 什么是逆向工程 3.2 MyBat…...

C++基础面试题
一、vector和list的区别 1.1 底层数据结构 vector 使用动态数组作为底层数据结构,元素在内存中是连续存储的; list 使用双向链表作为底层数据结构,元素在内存中通过节点相互连接。 1.2 插入和删除操作 vector 在尾部插入或删除元素效率高&…...

asp.net人事管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
一、源码特点 asp.net 人事管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net 人事管理系统1 应用技术…...

【Docker】Docker中 的AUFS、BTRFS、ZFS、存储池概念的详细讲解
前言 作者简介: 辭七七,目前大二,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&…...

华为云运维小结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、pandas是什么? 一、pandas是什么? HCIP学习笔记-华为云运维方案-9:https://blog.csdn.net/GoNewWay/article/details/13152…...

Firefox 119 正式发布
Firefox 119 已正式发布。新版本除了修复 Bug 之外,还增强了 Firefox View 功能、支持在 PDF 文档中插入图片,以及引入 Encrypted Client Hello (ECH) 以增强隐私保护等。 主要变化 改进 Firefox View:用户可以在该页面查看所有窗口打开的标…...

apachesolr启动带调试
这里solr.cmd报错,报错原因是java版本问题,后面发现这是因为多个java版本导致读取java_home失败, 那么我们修改solr.cmd中的JAVA_HOME为SOLR_JAVA_HOME IF DEFINED SOLR_JAVA_HOME set "JAVA_HOME%SOLR_JAVA_HOME%"环境变量将SOLR…...

【MATLAB】基于灰狼优化算法优化BP神经网络 (GWO-BP)的数据回归预测
文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 【MATLAB】基于灰狼优化算法优化BP神经网络 (GWO-BP)的数据回归预测 在MATLAB中,基于灰狼优化算法优化BP神经网络(GWO-BP)进行数据回归预测的步骤如下: 数据准备:首先,将用于回归预…...

雨水收集设施模块把雨水收集起来,经简单处理用于消防洗车冲厕等
雨水收集设施模块是一种利用雨水资源的环保设施,它可以将雨水收集起来,经过简单的处理后,用于消防、洗车、冲厕等用途。 雨水收集设施模块通常由多个雨水收集器组成,每个收集器都有一个集水口和一个小型储水池。当雨水流入集水口…...

Mac机RVM安装,手动下载安装,经过验证可以正常使用
1、正常方法(不容易成功),我自己就卡了两周(因为墙的问题一直搞不定) 中国境内访问 https://rvm.io 虽然可以访问,但是下载使用会被强,可能有一些翻越的方法,但是不容易搞 2、手…...

人工智能-深度学习之延后初始化
到目前为止,我们忽略了建立网络时需要做的以下这些事情: 我们定义了网络架构,但没有指定输入维度。 我们添加层时没有指定前一层的输出维度。 我们在初始化参数时,甚至没有足够的信息来确定模型应该包含多少参数。 有些读者可…...

Jupyter Notebook交互式开源笔记本工具
1、官网 http://jupyter.org/ 2、什么是Jupyter Notebook Jupyter Notebook一个交互式的开源笔记本工具,可以用于编写、运行、和共享代码、文本、图形等内容。 如下文本、代码、图形 支持多种编程语言,包括python、R和Julia等,可以走一个…...

基于晶体结构算法的无人机航迹规划-附代码
基于晶体结构算法的无人机航迹规划 文章目录 基于晶体结构算法的无人机航迹规划1.晶体结构搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用晶体结构算法来优化无人机航迹规划。 …...