赞
踩
在这篇文章中,对程序进行一些完善,然后打包。
增加bin文件大小的显示,这样使用过程中如果选错了文件,比如IAP选成了APP,那么从文件大小就能直观看出来。首先调整我们的界面布局:
程序实现上,主要涉及知识点为int转换成QString、小写字母转换为大写字母:
QString appsize = QString("0x%1").arg(info.size(), 8, 16, QLatin1Char('0'));
appsize = appsize.toUpper();
ui->appsizeEdit->setText(appsize);
暂时不添加,后续完善。
参考前面的Qt5学习笔记之串口助手三:设置图标、打包成Windows软件即可。
//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.禁止调节界面大小。因为一些空间使用了固定大小,所以希望运行后界面是固定的,不能拖动改变大小,避免界面不协调。可以使用setMinimumSize
、setMaximumSize
将最大最小尺寸设置成相同大小,也可以直接在构造函数中增加:
this->setFixedSize(width(),height()); //固定窗口为当前设计的大小尺寸
//this->setFixedSize(910, 530);
设置后界面右上角的最大化窗口变为灰色不可用。
参考链接: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);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。