记录解决QT环境变量、qwt环境搭建、cannot load QT5core.dll错误、TreeWidget与TabWidget联动及些许EXCEL问题
一、配置QT环境变量:
依次打开:设置->系统->关于->高级系统设置->环境变量->系统变量(s)->Path->编辑,将QT安装目录中以下文件路径复制粘贴至Path中:
D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\bin
D:\BaiDuWangPan\SoftWare\QT_551\Tools\mingw492_32\bin
相关解决方法可借鉴网址如下:https://blog.csdn.net/chexlong/article/details/53333647
二、搭建qwt使用环境
①将已有的qwt-6.1.4复制到Qt安装目录:\BaiDuWangPan\SoftWare\QT_551中。
②进入到qwt-6.1.4文件夹双击打开其中的qwt.pro,双击后该文件自行使用Qt打开。
③界面切换到Qt界面,打开qwt->designer->qwtbuild的qwtbuild.pri,将其中的‘CONFIG += debug_and_release’代码添加"#"进行注释,修改后为‘#CONFIG += debug_and_release’,然后点击运行按钮进行build,此过程约等待十几分钟。
④Build完成后到Qt安装目录D:\BaiDuWangPan\SoftWare\QT_551,可以看到编译生成的一个文件夹:‘build-qwt-Desktop_Qt_5_5_1_MinWG_32bit-Debug’,进入该文件夹中,依次进入designer->plugins->designer,将其中qwt_designer_plugin.dll文件复制到Qt以下目录D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\plugins\designer里。
⑤进入D:\BaiDuWangPan\SoftWare\QT_551\build-qwt-Desktop_Qt_5_5_1_MinWG_32bit-Debug\lib目录中,有4个文件,将qwt.dll、qwtd.dll文件复制到D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\bin,将libqwt.a、libqwtd.a文件复制到D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\lib。
⑥最后于D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\include新建一个文件夹,命名为qwt,进入qwt-6.1.4的src文件夹D:\BaiDuWangPan\SoftWare\QT_551\qwt-6.1.4\src,将里面的所有文件复制到刚刚新建的qwt文件夹里D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\include\qwt。
⑦新建个工程,在.pro文件中添加:
LIBS += -L "D:/BaiDuWangPan/SoftWare/QT_551/5.5/mingw492_32/lib" -lqwt
INCLUDEPATH += D:/BaiDuWangPan/SoftWare/QT_551/5.5/mingw492_32/include/QWT
include (D:/BaiDuWangPan/SoftWare/QT_551/qtctrl/qwt-6.1.2/qwt.prf)
即可使用qwt了。
相关解决方法可借鉴网址如下:
https://blog.csdn.net/imkelt/article/details/51234230
三、解决项目在其余电脑显示cannot load QT5core.dll错误
①从build-Desktop_Qt_5_5_1_MinGW_32bit-Release\release中找到plot.exe。
②于其他地方建立空文件夹,例如D盘建立kongTest1,将plot.exe拷贝进去。
③搜索Qt 5.5 for Desktop(MinGW 4.9.2 32bit),点击打开,跳转至.exe所在位置,输入cd /d D:/kongTest1。
④再输入windeployqt plot.exe,等待执行完成。
⑤使用Enigma Virtual Box,封包主程选择D:\kongTest1\plot.exe,将kongTest1文件夹拖入virtual box files中,选择“文件选项”勾选压缩文件,然后点击执行封包,打开plot_boxed.exe运行即可。
但在此有cannot load library qwt.dll、找不到QtOpenGL.dll错误。
相关解决方法可借鉴网址如下:
https://blog.csdn.net/xiao_jj_jj/article/details/96826664?utm_source=app
⑥解决方法如下:进入D:\BaiDuWangPan\SoftWare\QT_551\5.5\mingw492_32\bin文件夹,将QtOpenGL.dll和qwt.dll拷贝至D:\kongTest1文件夹中,而后使用Enigma Virtual Box封包,封包后的plot_boxed.exe可以在其余电脑使用打包。
⑦将plot_boxed.exe所处文件夹总体发予他人时,文件夹除了plot_boxed.exe还必包含的文件有如下图1和2所示。
图一
图二
四、TreeWidget与TabWidget联动
1. 布局
在mainwindow.ui中,拖动TreeWidget至布局中,设置‘sizePolicy’属性为[Fixed,Expanding,0,0],设置‘maximumSize’属性为500*16777215。
2. TabWidget添加页面代码如下:
ui->tabWidget->insertTab(0, &port, "端口");
ui->tabWidget->insertTab(1, &Format, "格式");
ui->tabWidget->insertTab(2, &plot, "图标");
ui->tabWidget->insertTab(3, &command, "指令");
ui->tabWidget->insertTab(4, &record, "记录");
ui->tabWidget->insertTab(5, &text, "文本");
3. TreeWidget添加结点代码如下:
ui->treeWidget->clear();
ui->treeWidget->setColumnCount(1);
ui->treeWidget->setHeaderHidden(true);
ui->tabWidget->tabBar()->hide();
// 增加线条
ui->treeWidget->setStyle(QStyleFactory::create("windows"));
// ----------------------------------------------------------
// 创建 [系统设置] 父节点
QTreeWidgetItem *system_setup = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("设置")));
// system_setup->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate);
system_setup->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
// 给父节点添加子节点
QTreeWidgetItem *system_setup_child_node_1 = new QTreeWidgetItem(system_setup);
system_setup_child_node_1->setText(0,"端口");
QTreeWidgetItem *system_setup_child_node_2 = new QTreeWidgetItem(system_setup);
system_setup_child_node_2->setText(0,"格式");
QTreeWidgetItem *system_setup_child_node_3 = new QTreeWidgetItem(system_setup);
system_setup_child_node_3->setText(0,"指令");
// ----------------------------------------------------------
// 创建 [页面布局] 父节点
QTreeWidgetItem *page_layout = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("显示")));Qt::ItemIsAutoTristate);
page_layout->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
QTreeWidgetItem *page_layout_clild_1 = new QTreeWidgetItem(page_layout);
page_layout_clild_1->setText(0,"图标");
QTreeWidgetItem *page_layout_clild_2 = new QTreeWidgetItem(page_layout);
page_layout_clild_2->setText(0,"存录");
QTreeWidgetItem *page_layout_clild_3 = new QTreeWidgetItem(page_layout);
page_layout_clild_3->setText(0,"文本");
QTreeWidgetItem *page_layout_clild_4 = new QTreeWidgetItem(page_layout);
page_layout_clild_4->setText(0,"记录");
// ----------------------------------------------------------
// 创建 [页面布局] 父节点
QTreeWidgetItem *SnapshotShow = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("图形")));
page_layout->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
QTreeWidgetItem *SnapshotShow_clild_1 = new QTreeWidgetItem(SnapshotShow);
SnapshotShow_clild_1->setText(0,"查看图像");
ui->treeWidget->expandAll();
connect(ui->treeWidget,SIGNAL(itemClicked(QTreeWidgetItem*, int)),this,SLOT(on_treeWidget_clicked(QTreeWidgetItem *, int)));
4. 点击结点响应,TreeWidget添加槽函数:
void MainWindow::on_treeWidget_clicked(QTreeWidgetItem *item, int column)
{
QString str = item->text(column);
if(str == "端口")
{
ui->tabWidget->setCurrentIndex(0);
}
if(str == "格式")
{
ui->tabWidget->setCurrentIndex(1);
}
if(str == "指令")
{
ui->tabWidget->setCurrentIndex(3);
}
if(str == "图标")
{
ui->tabWidget->setCurrentIndex(2);
}
if(str == "存录")
{
ui->tabWidget->setCurrentIndex(4);
}
if(str == "文本")
{
ui->tabWidget->setCurrentIndex(5);
}
if(str == "记录")
{
ui->tabWidget->setCurrentIndex(6);
}
}
相关解决方法可借鉴网址如下:
https://www.cnblogs.com/Romi/archive/2012/04/16/2452709.html
五、EXCEL表格相关问题
1. 分列
若保存文件为.xls格式时,分列步骤为:数据->分列->分隔符号->下一步->逗号->下一步->常规->完成,能够存储1048576行×16384列数据。
若保存文件为.csv逗号分隔值文件格式时,存录数据无需上述分列操作。
(xlsb是Excel的二进制文本格式,与之前的格式相比,表格体积更小,打开速度更快,同时可以保存宏代码)
2. 时间戳转换
①毫秒(ms)13位时间戳转时间公式为:
=TEXT((A2/1000+83600)/86400+70365+19,"yyyy/mm/dd hh:mm:ss.000")
②秒(s)10位时间戳转时间:
=TEXT((A2+83600)/86400+70365+19,"yyyy/mm/dd hh:mm:ss")
①时间转10位时间戳:
= INT((A2-70365-19)86400-8*3600)
相关解决方法可借鉴网址如下:
https://zhuanlan.zhihu.com/p/397973144
3. 整列使用一个公式
EXCEL如何对整列使用一个公式,不用往下拉的方式,因为有极多个数要计算,操作方法如下:
在第一个单元格里面写好公式确定,用鼠标点击第一个单元格,然后拉滚动条到最后一行,按住shift键,点击最后一个要填充公式的单元格,此时所有需要使用公式的单元格均被选中,再同时按下“Ctrl + D”键,则所有单元格自动填充公式。
4. 科学记数法转为普通数值显示
科学记数法转为普通数值显示操作方法如下:
方法一:在空单元格中输入公式=TRIM(A2)并按回车键,得到我们的第一个结果
方法二:选择数值,单击右键,选择格式化单元格,在弹出的窗口中,点击“自定义”,在“类型(T):”文本框内输入“0”,然后点击“确定”。