QT应用设计——HexoBlogClient

Qt QString:常用成员函数总结 在这个例子中,"%1" 被 "time" 替换,"%2 被 "2019-5-30" 替换,"%3" 被 "value" 替换,而 "%4" 被 25.8 替换。如果是默认10进制,而字符串非纯数字,最终转换int的结果为0。上面的函数 trimmed() 是去掉字符串前后的 ASCII 字符 '\t', '\n', '\v', '\f', '\r' 和 ' '。若需要过滤掉字符串两端的空白符('\t', '\v', '\f', '\r', '\n', 和' '),可以使用 trimmed() 函数。 阅读详情

优快云仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。
本博文对应地址: https://hceng.cn/2017/10/12/QT应用设计——HexoBlogClient/#more

本文主要记录采用QT开发的hexo博客管理客户端——HexoBlogClient。

0.初衷

做嵌入式这行,如果做界面,几乎只有两个选择:Qt和Android。
所以感觉学习下Qt还是很有必要的,顺便回忆点C++。

国庆节前打了鸡血一样疯狂的学了一周Qt,学了后想做个简单的东西练练手。
所做的东西一定要是能解决我的某些痛点的,这样才会让我动力去做。

思来想去,每次写博客,需要打开Git Bash,输入创建命令、构建、本地预览、发布、备份……
虽说之前GitHub+Hexo搭建及优化——5-5脚本自动化中采用了bat脚本一键完成清理、构建、发布这些操作,但每次要打开Git Bash,进入指定路径,输入脚本运行,还是挺麻烦的。

So,搞个博客客户端一键操作似乎更方便点 = =

1.设计思路

写博客,我一般的完整步骤是:

新建博客->编辑博客->如果有图片需上传到图床、有代码需上传到GitHub->清理原来博客的生成的静态页面->生成新的静态页面->本地预览->根据预览效果继续编辑->满意后再次清理、生成静态页面->发布博客(GitHub和Coding)->备份本地的所有源文件到Coding私有库->访问博客查看。

因此博客客户端首先应该很流畅的实现上面的工作流,其次才是锦上添花的添加其它功能。

a:本地界面

  • a1:打开这个客户端,首先这个页面应该显示出我的文章列表;
  • a2:实现新建博客文章、编辑博客文章等对文章的常用操作;
  • a3:实现常用的清理、生成、预览、发布、备份等功能;

b:图床界面

  • b1:博客文章采用的Markdwon格式,图片需要先保存到图床,然后引用链接。现在的图床方案是上传到七牛。
  • b2:在这个界面,需要将图片 通过拖拽/资源管理器 的方式上传到七牛空间,并且按照当前的日期,指定路径格式,如:image/blog/170915/1.jpg;
  • b3:返回链接地址;
  • b4:能够管理已上传的图片(比如跳转到七牛的存储空间);

c:代码界面

  • c1:显示出本地代码,通过拖拽/资源管理器 的方式增减/编辑代码;
  • c2:上传到GitHub;
  • c3:打开GitHub、Coding;

d:设置界面

  • d1:设置相关的路径,比如博客路径;
  • d2:设置图床的配置文件;

e:关于界面

  • e1:版本、版权信息;
  • e2:主页跳转;
  • e3:获取指定文件;

f:其它

  • f1:修改应用图标

2.程序代码设计

创建好Qt工程后,工程项目下会有四类文件:pro工程文件、头文件、源文件、界面文件。
直接打开界面文件的mainwindow.ui,在上面拖动控件,实现界面的设计,再在源文件mainwindow.cpp编辑代码,完成功能的设计。

2.1 修改应用程序图标

先做个简单的,修改应用程序的图标。
图标显示有两个,一个是打开程序后,在程序左上角显示的图标,一个是在资源管理显示代表该程序的图标。

首先要准备个ico图片文件,然后把图片加入到工程项目中。
在项目中,点击该工程,右键,添加新文件。
选择Qt的Qt Resource File,名字写image,之后就会在工程项目生成一个资源文件:image.qrc。
再选中image.qrc右键,添加现有文件,选择准备的hexoblogclient.ico图标,这样就将图标添加进了工程。

  • a:修改程序左上角图标
    修改源代码mainwindow.cpp,设置打开程序后左上角的图标和显示的文字:
    {% codeblock lang:c%}
    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);

    this->setWindowIcon(QIcon("?/image/hexoblogclient.ico"));//设置图标
    this->setWindowTitle(“HexoBlogClient”);//设置名字
    }
    {% endcodeblock %}

  • b:修改应用程序图标
    在工程目录下创建一个appicon.rc文件,文件内容如下:

IDI_ICON1   ICON    DISCARDABLE "image/hexoblogclient.ico"

再在HexoBlogClient.pro文件添加如下代码:

RC_FILE += \
    appicon.rc

此时重新编译,应用程序图标也变成了ico图案。

2.2 本地界面

  • 界面设计
  1. 使用tabWidget控件作为每个界面的容器;
  2. 使用treeView控件显示文章列表;
  3. 使用pushButton控件作为按键;
  4. 使用label控件显示当前文章总数和时间;

效果如下:

  • 功能设计
    实例化一个QFileSystemModel类,筛选出*.md文件,指定文件路径,隐藏其它Column(也就是只显示文件名,不显示大小、日期等信息),然后以日期为标准,降序排列,最后将信息显示到treeView上。
    {% codeblock lang:c %}
    QFileSystemModel *model1 = new QFileSystemModel();
    model1->setRootPath(“E:/hceng blog/blog/source/_posts”);

    QStringList nameFilter1;
    nameFilter1 << “*.md”;
    model1->setNameFilterDisables(false);
    model1->setNameFilters(nameFilter1);//筛选文件类型
    ui->treeView1->setModel(model1);
    ui->treeView1->setRootIndex(model1->index(“E:/hceng blog/blog/source/_posts”));//指定路径
    ui->treeView1->setColumnHidden(1,true);//隐藏显示
    ui->treeView1->setColumnHidden(2,true);
    ui->treeView1->setColumnHidden(3,true);

    ui->treeView1->setSortingEnabled(true);//使能排序
    ui->treeView1->sortByColumn(3, Qt::DescendingOrder);//以时间作为依据排序;升序:Qt::AscendingOrder 降序:Qt::DescendingOrder
    {% endcodeblock %}

接下来是8个功能按键,很多是直接调用的bat脚本实现功能的。

首先是“新建”按钮,获取输入的标题,然后判断是否为空以及是否按下“确定”,这里直接创建了个新的Markdwon文件,然后写入基本的模板格式。
{% codeblock lang:c %}
void MainWindow::on_pushButton11_clicked()
{
bool ok;
QString text = QInputDialog::getText(this, tr(“新建博客”),tr(“请输入标题:”), QLineEdit::Normal,NULL, &ok);

if ( ok && !text.isEmpty() )
{
    /*
        ---
        title: "格式"
        date:2017-10-11 15:11:33
        tags:
             - xx
        toc: true
        ---
        summary
        <!-- more -->
     */

    QDateTime time = QDateTime::currentDateTime();
    QString strTime = time.toString("yyyy-MM-dd hh:mm:ss ");
    QFile namefile("E:\\hceng blog\\blog\\source\\_posts\\"+text+".md");
    //qDebug()<<strTime;
    if (!namefile.open(QIODevice::WriteOnly | QIODevice::Truncate))
        return;
    QTextStream out(&namefile);
    out<<"---"<<'\n'<<"title: \""+text+"\""<<'\n'<<"date: "<<strTime<<'\n';
    out<<"tags: "<<'\n'<<"     - xx"<<'\n'<<"toc: true"<<'\n'<<"---"<<'\n';
    out<<"summary"<<'\n'<<"<!-- more -->"<<'\n';
    namefile.close();
}
else if(ok && text.isEmpty() )
{
    QMessageBox::information(this,"信息","请输入标题.");
}
else
{
    return;
}

}
{% endcodeblock %}

然后是“编辑”按键,先获得当前treeView选择的文件,再通过桌面服务使用默认程序打开该文件。
{% codeblock lang:c %}
void MainWindow::on_pushButton12_clicked()
{
QString currentFilePath = model1->filePath(ui->treeView1->currentIndex());
if (!currentFilePath.isEmpty())
{
qDebug()<<“file://”+currentFilePath;
QDesktopServices::openUrl(QUrl(“file:///”+currentFilePath));
//QDesktopServices::openUrl(QUrl(“file:///E:/hceng blog/blog/source/_posts/测试文章.md”));
}
}
{% endcodeblock %}

“清理&重构”按键调用的脚本执行,等同执行的hexo c & hexo g,最后使用QMessageBox显示截取的部分数据;调用cmd.exe的时候,在纠结使用startDetached还是start,前者是完全独立的启动,后者类似调用。执行脚本需要一定时间,通常都是数秒以上,使用start会出现未响应的情况,但如果使用startDetached可能会多次按该按键,导致启动多次,不知道什么时候完成。最后还是选的start。

{% codeblock lang:c %}
void MainWindow::on_pushButton13_clicked()
{
ui->pushButton13->setText(“请等待……”);

QTime dieTime = QTime::currentTime().addMSecs(100);//延时0.1s
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

QProcess *process=new QProcess(this);
//process->startDetached("cmd.exe", QStringList() << "/c" << "D:\\git\\qt\\HexoBlogClient\\bat\\clean_creat.bat");
process->start("cmd.exe", QStringList() << "/c" << "D:\\git\\qt\\HexoBlogClient\\bat\\clean_creat.bat");
process->waitForFinished();

ui->pushButton13->setText("清理&&重构");

QString strTemp=QString::fromLocal8Bit(process->readAllStandardOutput());
//strTemp = strTemp.section('O',-1,-1);
strTemp = strTemp.section('l',-2,-1);
qDebug()<<strTemp;

QMessageBox testMassage;
testMassage.setText(strTemp);
testMassage.exec();

}
{% endcodeblock %}

“预览/停止”按键也是调用的脚本的命令:hexo s,关闭的时候通过读取进程列表,关闭指定端口的进程。实测中,有一定概率误关掉整个浏览器。
{% codeblock lang:c %}
void MainWindow::on_pushButton14_clicked()
{
if(pushButton14Flag == 0)
{
QProcess *process=new QProcess(this);
process->start(“cmd.exe”, QStringList() << “/c” << “D:\git\qt\HexoBlogClient\bat\view.bat”);
process->waitForFinished();

    /*
    QTime dieTime = QTime::currentTime().addMSecs(1000);//延时1s
    while( QTime::currentTime() < dieTime )
    QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
    */
    QDesktopServices::openUrl(QUrl("http://localhost:4000/"));
    ui->pushButton14->setText("停止");
    pushButton14Flag = 1;
}
else
{
    QProcess *process=new QProcess(this);
    process->start("cmd.exe", QStringList() << "/c" << "D:\\git\\qt\\HexoBlogClient\\bat\\stop_view.bat");
    process->waitForFinished();
    ui->pushButton14->setText("预览");
    pushButton14Flag = 0;
}

}
{% endcodeblock %}

“发布”也比较花时间,也是调用脚本的命令:hexo d
{% codeblock lang:c %}
void MainWindow::on_pushButton15_clicked()
{
ui->pushButton15->setText(“请等待……”);

QTime dieTime = QTime::currentTime().addMSecs(100);//延时0.1s
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

QProcess *process=new QProcess(this);
process->start("cmd.exe", QStringList() << "/c" << "D:\\git\\qt\\HexoBlogClient\\bat\\deploy.bat");
process->waitForFinished();

ui->pushButton15->setText("发布");

}
{% endcodeblock %}

“备份”是将整个工程上传到Coding的私有库,原理还是git。
{% codeblock lang:c %}
void MainWindow::on_pushButton16_clicked()
{
ui->pushButton16->setText(“请等待……”);

QTime dieTime = QTime::currentTime().addMSecs(100);//延时0.1s
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

QProcess *process=new QProcess(this);
process->start("cmd.exe", QStringList() << "/c" << "D:\\git\\qt\\HexoBlogClient\\bat\\bak.bat");
process->waitForFinished();

ui->pushButton16->setText("备份");

}
{% endcodeblock %}

“发布&备份”是前面两个的结合。
{% codeblock lang:c %}
void MainWindow::on_pushButton17_clicked()
{
ui->pushButton17->setText(“请等待……”);

QTime dieTime = QTime::currentTime().addMSecs(100);//延时0.1s
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

QProcess *process=new QProcess(this);
process->start("cmd.exe", QStringList() << "/c" << "D:\\git\\qt\\HexoBlogClient\\bat\\deploy_bak.bat");
process->waitForFinished();

ui->pushButton17->setText("发布&&备份");

}
{% endcodeblock %}

“访问”就仅仅是打开博客链接,不用再在浏览器里翻了。
{% codeblock lang:c %}
void MainWindow::on_pushButton18_clicked()
{
QDesktopServices::openUrl(QUrl(“https://hceng.cn/”));
}
{% endcodeblock %}

最下面的统计文件数量和显示当前时间,是个定时任务,每秒都刷新这两个label。
文件数量是获取博客文章路径的fileInfoList,然后获得文件数量,再转换成字符类型追加到label中。
{% codeblock lang:c %}
//timeshow
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));
timer->start(1000);
{% endcodeblock %}

{% codeblock lang:c %}
void MainWindow::timerUpdate(void)
{
QDateTime time = QDateTime::currentDateTime();
QString strTime = time.toString("yyyy-MM-dd dddd hh:mm:ss ");
ui->label1->setText(strTime);

QDir *dir=new QDir("E:/hceng blog/blog/source/_posts");
QStringList filter;
filter<<"*.md";
dir->setNameFilters(filter);
//QList<QFileInfo> *fileInfo=new QList<QFileInfo>(dir->entryInfoList(filter));
QFileInfoList fileInfoList=dir->entryInfoList(filter);//在qt中有typedef QList<QFileInfo> QFileInfoList;所以两者等价

QString fileCount = QString::number(fileInfoList.count(), 10);
QString strCount = "文章总数:";
strCount.append(fileCount);
ui->label2->setText(strCount);

}
{% endcodeblock %}

2.3 图床界面

2.4 代码界面

2.5 设置界面

2.6 关于界面

3.计划

最近有点忙/懒,图床部分,看了下,要研究下七牛的API,暂时没那个精力。
试着用了下客户端,还是比较满意的,不用打开资源管理器和git-bash了,上传图片和代码,还是和原来一样,觉得不流畅,后面有时间,有精力了再研究。
后面最想做的有两个:

  1. 实现配置文件的读取/写入;
  2. 获取服务器指定图片;

加上国庆,话说有半个月没摸驱动了,Qt暂停下,先玩玩驱动。
目前只完成了第一个主界面,后面的几乎没做,如果有志同道合的朋友可以交流下,一起完成。

hexoclient基于electron的跨平台hexo客户端 hexo-client: 基于electron的跨平台hexo客户端 立即下载

相关推荐

hexo-client:Hexo博客系统客户端

Hexo客户端 依赖 需要保证有Node.JS运行环境和Git 。 开发 编译 $ npm start // 编译前后端资源,后端资源需重启后才生效 运行 $ npm run client 打包 $ npm run pack:mas # 各平台的打包命令请查看 package.json 文件 截图 扩展 新增,编辑,删除文章 搜索文章 软件偏好设置 一键编译,发布博客 预览博客 软件消息提示 操作日志记录 优化关键字互动 将文章保存为草稿 自动保存文章 检查软件更新

关于QString的section方法的一些问题

含义: section的字面意思是"把…分段",实际上这个函数就是这个意思。 易错讲解: 1、 //完整的函数 QString section(const QString &sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const 重点: 这个函数首先会将str对象按照"sep"分成几个段,然后start和end会是根据这些段来计算的。 例如: QString parent = QStri

Wj_12345_的博客 1452

hexo-client:hexo-client:基于电子的跨平台hexo客户

六方客户 Hexo桌面客户端 我的博客: : Hexo: : 主页: : Electron AppCenter: ://electronjs.org/apps/hexo-client QQ群 欢迎加入HexoClient用户群交流。 QQ群号:618213781 QQ群二维码 功能简介 文章添加 文章修改 文章删除 草稿功能 多图床支持:aliyun-oss,七牛,sm.ms,Github 文章搜索 文章按分类,标签分组展示 多语言支持 支持自动部署 功能预览 下载地址 构建设置 # install dependencies npm install # dev npm ru

探索 Hexo 客户端:一款高效博客创作工具

探索 Hexo 客户端:一款高效博客创作工具 则是针对它的强大客户端应用,为喜爱 Hexo 的开发者和内容创作者提供了一种更直观、更便捷的写作体验。在这篇文章中,我们将深入探讨这个项目的技术特性,应用价值,以及为何你应该尝试使用它。 项目简介 Hexo Client 是一个基于 Electron 框架构建的跨平台应用程序,支持 Windows、macOS 和 Linux 系统。它允许用户直接在本地...

gitblog_00001的博客 637

blog-client

这是一个用引导的项目。 入门 首先,运行开发服务器: npm run dev # or yarn dev 用浏览器打开以查看结果。 您可以通过修改pages/index.js来开始编辑页面。 页面在您编辑文件时自动更新。 可以在上访问。 可以在pages/api/hello.js编辑此端点。 pages/api目录映射到/api/* 。 此目录中的文件被视为而不是React页面。 了解更多 要了解有关Next.js的更多信息,请查看以下资源: -了解Next.js功能和API。 交互式Next.js教程。 您可以查看-欢迎您提供反馈和意见! 在Vercel上部署 部署Next.js应用程序的最简单方法是使用Next.js创建者提供的。 请查看我们的以获取更多详细信息。

blog_client_fe:雨果客户博客

Hugo 博客客户端 针对所做的文章编辑工具。 目前做了mac && win版本。传送门 这里只是前端部分,使用webpack + react + codeMirror构建。 基于cherry框架(自己集成了electron的一些通用接口),了解源码请移步 主要功能 文章管理(新建、删除、编辑文章) 分类标签管理(新建、删除分类、标签、关键字) 图片插入 代码片段插入 一键生成静态文件 创建文章 选择好hugo的静态资源根目录后,可以选择对应的标签、类型、关键字创建文章,标签的创建见标签管理。 默认只会在hugo根目录/content/post目录下读取、创建文章。 标签管理 在创建文章时,需要选择标签,这些标签需要您手动创建,创建完成后,会自动生成配置文件名称为blog.config.js存在hugo根目录中。 插入图片 可以拖拽或者选择的方式选择您需要在文章中插入的图片(也可直接粘贴剪

Hexo-Client 使用教程

Hexo-Client 是一个基于 Electron 的跨平台 Hexo 博客客户端。项目的目录结构如下: ``` hexo-client/ ├── app/ │ ├── assets/ │ ├── components/ │ ├── config/ │ ├── main/ │ ├── models/ │ ├── pages/ │ ├── services/ │

gitblog_00558的博客 705

用LTspice仿真CMOS反相器功耗?这份避坑指南能省你3天调试时间

本文详细介绍了如何使用LTspice准确仿真CMOS反相器的功耗,包括动态功耗、短路功耗和静态功耗的测量技巧。通过工程实践指南,帮助电子工程师避开常见陷阱,优化仿真参数设置,提升仿真结果的可靠性,节省调试时间。

w7x8y9z的博客 186

基于 Electron 的 Hexo 桌面客户端 HexoClient

HexoClient 详细介绍 基于Electron的Hexo桌面客户端,欢迎各路大神添砖加瓦。 功能简介 文章添加、修改、删除。 文章实时预览。 文章支持七牛图片上传 TODO 文章详情页优化 图片查看优化 自动Generate 自动Deploy Build Setup # install dependencies n...

前端栈开发 720

Acgis中实现栅格经纬度和行政区关联

目前已有意大利的shp文件,希望将意大利划分成0.1*0.1经纬度的栅格,并且关联每个栅格中心点所属的省份信息。最终希望得到的输出是一个表格,里面包含栅格的经纬度、所属省份信息。

qq_42183184的博客 3369

固定效应模型-以stata为工具

固定效应模型(Fixed Effects Model)是一种面板数据分析方法,通过引入个体固定效应来控制个体间的异质性,并更准确地估计解释变量对因变量的影响。它在许多经济、社会科学和健康研究中被广泛应用。

侯小啾技术博客 2837

【亲测免费】 Hexo 客户端 - gaoyoubo/hexo-client 入门与实践指南

**Hexo 客户端** 是一个基于 Electron 构建的跨平台工具,专为 Hexo 博客系统设计。它旨在简化 Hexo 博客的管理流程,允许用户在任何支持 Electron 的操作系统上方便地创作、编辑和发布博客文章,无需直接接触命令行。该项目由 [gaoyoubo](https://github.com/gaoyoubo) 主导开发,提供了一种更加直观和便捷的方式来操作 Hexo 博客环境

gitblog_00552的博客 673

Ubuntu零基础入门到精通【1.1讲】:什么是 Ubuntu?一文带你彻底搞懂!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 5692

开源项目推荐:hexo-client

hexo-client 是一个开源的跨平台 Hexo 桌面客户端,基于 Electron 构建。该项目主要使用 Vue 和 JavaScript 进行开发。 ## 1. 项目基础介绍和主要编程语言 hexo-client 是一个为 Hexo 博客系统设计的桌面客户端,它提供了一套简洁的用户界面来管理 Hexo 博客内容。这款客户端让用户能够在桌面环境中轻松地撰写、编辑、发布博客文章,而无需通过

gitblog_00957的博客 455

torch.nn.rnn实现循环神经网络

------------------------------------nn.rnn模型实现。#------------------------------------模型实现。#-----------------------------------训练模型。#-----------------------------------训练模型。#--------------------------------读取数据。实现循环神经网络,并在至少一个数据集上进行实验,从训练时间、预测精度、...

matlab_python22的博客 2970

【基于CKF的IMM】CV和CT两个模型下的IMM,二维,滤波使用CKF(容积卡尔曼滤波),附完整的matlab代码

该文章摘要: 本文提出了一种基于交互多模型(IMM)和容积卡尔曼滤波(CKF)的融合定位算法,用于解决目标在直线运动和转弯机动之间的模型切换问题。通过MATLAB仿真实现了IMM-CKF算法,并与单一的CV-CKF(匀速模型)和CT-CKF(匀角速转弯模型)方法进行对比。实验结果表明,在包含直线段和转弯段的复合轨迹跟踪中,IMM-CKF方法能够自适应调整模型权重,显著提高了定位精度。轨迹跟踪图、位置/速度误差对比图以及模型概率曲线直观展示了IMM算法的优势。文章提供了完整的MATLAB实现代码,可用于目标跟

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 614

【亲测免费】 高效博客发布利器:Hexo-Client

是一个基于 Electron 的桌面应用程序,旨在为 Hexo 博客框架提供更为便捷的写作和管理体验。如果你是 Hexo 用户,想要在本地离线环境下轻松撰写、预览和发布博客,那么这款工具将是你的理想选择。 ## 技术解析 Hexo-Client 利用了以下关键技术: 1. **Electron** - 这是一个由 GitHub 开发的开源框架,允许使用 JavaScript, HTML 和

gitblog_00036的博客 517

【华为OD机试真题】390、AI面板识别 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

题目描述 >AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。   由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),   请输出先行后列排序的指示灯的编号,排序规则:   1、每次在尚未排序的灯中挑选最高的灯作为的基准灯   2、找出和基准灯属于同一行所有的灯进行排序。两个灯高低偏差不超过灯半径算同一行(即两个灯坐标的差 ≤ 灯高度的一半)

KJ.JK 1802

六款blog client

六款blog client Style:BackgroundForegroundLink ColorLink Visited Size: Width:More ▼ Open ModeOv...

159

顶刊论文引言用AI怎么写?借助Gemini 3 Pro结合四段式写出逻辑清晰的Introduction

写研究目标时,先明确研究问题,直接回应前文提到的研究缺口,如 “This study aims to investigate whether X modulates Y via the Z pathway in human cells.”然后再提出你的研究假设,当理论依据清晰时,可以用如 “We hypothesized that inhibiting X would rescue Y deficiency in this model.”的句子点出研究目标。要求:1)明确陈述本研究拟解决的核心科学问题;

智能AI让学术科研更容易 180

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Hexo-Client 终极问题解决指南:10个常见问题快速排查

Hexo-Client 是一款基于 Electron 构建的跨平台 Hexo 客户端工具,为 Hexo 博客用户提供了图形化界面操作体验。如果你在使用过程中遇到了各种问题,这份完整的常见问题解决方案将帮助你快速定位并解决问题。🚀 ## 🔧 安装与启动问题 ### 如何正确安装 Hexo-Client 首先确保你的系统已安装 Node.js,然后通过以下步骤进行安装: ```bash #

gitblog_00058的博客 917

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

探索Hexo博客客户端:一款强大的Markdown写作工具

探索Hexo博客客户端:一款强大的Markdown写作工具 是一个专为 Hexo 博客框架设计的桌面应用,它提供了一种直观、高效的 Markdown 写作体验,帮助作者们更便捷地创作和管理自己的博客内容。本文将深入介绍该项目的技术特性、用途及亮点,希望能吸引更多的用户加入到这个高效写作的行列。 1. 项目简介 Hexo 博客客户端是一款基于 Electron 框架构建的跨平台应用程序,支持 Win...

gitblog_00074的博客 412

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Hexo Blog Client 项目常见问题解决方案

Hexo Blog Client 项目常见问题解决方案 1. 项目基础介绍和主要编程语言 Hexo Blog Client 是一个跨平台的 Hexo 博客管理客户端,基于 Electron 和 Vue.js 开发。该项目提供了一种便捷的方式来管理 Hexo 博客,包括文章的增删改查、本地预览、文章置顶等功能。主要编程语言包括 JavaScript、HTML、CSS 以及 Vue.js。 2. 新手...

gitblog_01027的博客 380

HexoClient 1.2.6 发布,支持 hexo front-matter 特性

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> 本次更新内容 featu...

cpongo5 181

强大博客搭建全过程(1)-hexo博客搭建保姆级教程

Hexo搭建全教程,教你快速搭建好属于自己的博客!

奇想派 1095

Hexo多客户端同步问题

在家里同步github上的博客源码时发现无法同步themes/next,本文主要记录用git subtree解决该问题(其他theme方法相同),对于Git使用不太熟悉的朋友 可以看下这篇文章 原因 next的集成文章中是用clone方法来使用的,而git无法直接管理这样的嵌套模块。 解决 方案一: 简单粗暴解决 直接删掉next/.git文件夹,将next当成普通的文件加入到版本控制当中...

weixin_33759269的博客 259
上一篇: AM437x——I2C裸机
下一篇: Exynos4412——内核移植
hceng_blog
博客等级 码龄10年 263粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值