Qt5学习笔记之bin文件合成工具四:打包程序、修改为CAN帧ID解析工具、ping数据处理工具

概述

在这篇文章中,对程序进行一些完善,然后打包。

增加bin文件大小显示

增加bin文件大小的显示,这样使用过程中如果选错了文件,比如IAP选成了APP,那么从文件大小就能直观看出来。首先调整我们的界面布局:
在这里插入图片描述
程序实现上,主要涉及知识点为int转换成QString、小写字母转换为大写字母:

	QString appsize = QString("0x%1").arg(info.size(), 8, 16, QLatin1Char('0'));
	appsize = appsize.toUpper();
	ui->appsizeEdit->setText(appsize);

增加MD5值计算

暂时不添加,后续完善。

增加图标打包程序

参考前面的Qt5学习笔记之串口助手三:设置图标、打包成Windows软件即可。

CAN帧ID解析工具

//2022.08.15补充。
打算做一个小工具,对CAN的扩展帧ID进行解析,方便调试查看数据。功能很简单,且与bin文件合成工具有很多相似之处。所以基于bin文件合成工具,进行修改完成。主要涉及以下内容:
1.设置标题。只需要在Widget的构造函数中增加一句:

setWindowTitle("CAN扩展帧ID解析");

注意要放在ui->setupUi(this);后面。

2.QLabel文本换行。在需要换行的位置输入\n即可,如[7:0]\nindex
在这里插入图片描述
3.限制QLabel输入文本的最大长度为2。选中QLineEdit之后,在右下角的属性框中找到text下面的maxLength。
4.设置背景文字。可以使用代码:

ui->srcEdit_in->setPlaceholderText("输入");

也可以选中QLineEdit之后,在右下角的属性框中找到text下面的maxLength,在后面写入文本即可。
5.设置文本颜色

    //设置文本的颜色,背景文本的颜色也会修改
    QPalette palette;
    palette.setColor(QPalette::Text, QColor(196, 196, 196));  //灰色
    ui->srcEdit_in->setPalette(palette);
	ui->srcEdit_in->setStyleSheet("QLineEdit{color:rgb(33, 33, 33);}");   //无效,需确认
    ui->srcEdit_in->setStyleSheet("QLineEdit{color: 0x999999;}");   //无效,需确认    

6.修改只读框的颜色。在构造函数中增加:

	//ui->extEdit_out->setStyleSheet("background-color:rgba(0,196,196,196)");
    ui->extEdit_out->setStyleSheet("background:lightGray");   //设置背景为浅灰色

可以通过rgb值来设置颜色,要求不高也可以直接使用在帮助里搜索支持的颜色:
在这里插入图片描述

7.增加历史记录。主要是格式化字符串。
8.禁止调节界面大小。因为一些空间使用了固定大小,所以希望运行后界面是固定的,不能拖动改变大小,避免界面不协调。可以使用setMinimumSizesetMaximumSize将最大最小尺寸设置成相同大小,也可以直接在构造函数中增加:

	this->setFixedSize(width(),height()); //固定窗口为当前设计的大小尺寸
    //this->setFixedSize(910, 530);

设置后界面右上角的最大化窗口变为灰色不可用。
在这里插入图片描述

ping数据处理工具

拖拽文件

参考链接:QT:从外部拖拽文件到QWidget中,获取其文件的路径(单文件和多文件)。分为4步实现:
1.在Widget类中添加声明

protected:
    void dragEnterEvent(QDragEnterEvent* ev) override;
    void dropEvent(QDropEvent* ev) override;

2.添加头文件

#include <QDragEnterEvent>
#include <QDropEvent>
#include <QMimeData>

3.重写 dragEnterEvent 和 dropEvent 事件

//拖动进入事件
void Widget::dragEnterEvent(QDragEnterEvent *ev)
{
    if(ev->mimeData()->hasUrls())//是否是文件路径
    {
        ev->accept();//接收拖动进入事件
    }
    //ev->ignore();//若忽略该事件,则不会发生之后的事件,拖放到此结束
}
 
 
//拖动放下事件
void Widget::dropEvent(QDropEvent *ev)
{
    if(ev->mimeData()->hasUrls())
    {
        QList<QUrl> urls = ev->mimeData()->urls();
        
        //单个文件路径
        //QString fileName = urls.at(0).toLocalFile();
        //qDebug()<<fileName;
 
        //多个文件路径
        for(int i=0; i<urls.size(); i++)
        {
            qDebug()<<urls.at(i).toLocalFile();
        }
    }
}

4.在构造函数中启用

setAcceptDrops(true); // Widget 允许拖拽操作

这样在编译运行后,将文件拖放到窗口,会打印出文件的路径信息
在这里插入图片描述
想要提取文件名,则在dropEvent函数中增加

        QString fileName;
        fileName = ev->mimeData()->urls()[0].fileName();        //只提取文件名
        ui->filepathEdit->setText(fileName);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值