首页 > 其他分享 >记录解决QT环境变量、qwt环境搭建、cannot load QT5core.dll错误、TreeWidget与TabWidget联动及些许EXCEL问题

记录解决QT环境变量、qwt环境搭建、cannot load QT5core.dll错误、TreeWidget与TabWidget联动及些许EXCEL问题

时间:2024-04-03 11:11:20浏览次数:25  
标签:load QT5core Qt 551 QTreeWidgetItem ui qwt QT

一、配置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)

3. 整列使用一个公式

EXCEL如何对整列使用一个公式,不用往下拉的方式,因为有极多个数要计算,操作方法如下:
在第一个单元格里面写好公式确定,用鼠标点击第一个单元格,然后拉滚动条到最后一行,按住shift键,点击最后一个要填充公式的单元格,此时所有需要使用公式的单元格均被选中,再同时按下“Ctrl + D”键,则所有单元格自动填充公式。

4. 科学记数法转为普通数值显示

科学记数法转为普通数值显示操作方法如下:
方法一:在空单元格中输入公式=TRIM(A2)并按回车键,得到我们的第一个结果
方法二:选择数值,单击右键,选择格式化单元格,在弹出的窗口中,点击“自定义”,在“类型(T):”文本框内输入“0”,然后点击“确定”。

标签:load,QT5core,Qt,551,QTreeWidgetItem,ui,qwt,QT
From: https://www.cnblogs.com/gonghangxiubai/p/18110904

相关文章

  • VS2022+QT5.14.2开发VS QT Tool的使用
    1.安装环境vs2022+QT5.14.2qtvstool(vsaddin)的使用遇到的坑1.安装qt-vsaddin-msvc2022-3.0.2.vsix安装失败2.安装qt-vsaddin-msvc2022-2.8.0.vsix在qtSetting->qtmodels模块管理中,没有Selectmodel的功能选项如下图位置3.卸载版本vsaddin_2.8.0后安装qt-vsaddin-msvc2......
  • debian10安装qt5库,解决安装ibudev-dev会卸载桌面和网络管理问题。以及libc6-dbg安装同
    直接使用sudoaptinstalllibudev-dev 命令安装会有问题。问题现象和根因:安装libudev-dev会卸载gdm3,network-manager等。继续执行它会卸载网络服务,桌面环境等,重启后黑屏。解决:使用aptitude安装。sudoaptinstallaptitudesudoaptitudeinstalllibudev1=241-7~deb10u10......
  • Qt 求圆和椭圆上任意角度点的坐标
    0.圆相关公式在笛卡尔坐标系上,一个标准的圆是这样的: 已知圆心坐标(x0,y0),半径R,角度a,则圆边上点(x',y')的坐标为:C的三角函数参数为弧度,转换如下:角度转弧度: 弧度转角度:但我们知道,Qt绘图是屏幕坐标系,起点在左上角,以右下角为正方向: (可以把计算后的y取反来得到想要的效果......
  • windows下编译paho.mqtt
    1、准备(1)Github仓库地址:https://github.com/eclipse/paho.mqtt.chttps://github.com/eclipse/paho.mqtt.cpp(2)VisualStudio2022以及CMakehttps://visualstudio.microsoft.com/zh-hans/vs/community/https://cmake.org/download/2、编译C库首先clone源码到本地文件......
  • Vue3连接mqtt订阅消息
    Vue3中使用以及订阅没有安装可使用npminstallmqtt--save(暂时使用了[email protected])页面引入引用mqtt库不要直接引用mqtt会报错importmqttfrom'mqtt/dist/mqtt'代码:1.获取动态配置(关于mqtt的动态配置)<script>////引入mqttimportmqttfrom"mqt......
  • Qt qSin()用法
    在Qt中,qSin()是一个数学函数,用于计算给定角度的正弦值。它的使用方法如下:1#include<QtCore/qmath.h>2//...3doubleangle=45.0;//角度值(以度为单位)4doubleradians=qDegreesToRadians(angle);//将角度转换为弧度5doublesinValue=qSin(radians);//计算......
  • 盘点那些好用的SAP FIORI App(二) -上传凭证Upload Journal Entry
    前面我有提到过,SAP录入凭证的界面是用户不友好的,并且介绍了几种快速录入的方法,科目分配模型,参考凭证等,但是今天我要讲到的这个app是最实用的,强烈推荐大家使用,因为这个可以用excel的方法直接上传过账,并且不需要额外的定制开发。AppID:F2548点击app进入如下界面,我们可以先......
  • Qt QScatterSeries理论总结
    一、概述QScatterSeries类以散点图的形式呈现数据。散点数据在图表上显示为点的集合。对于每个点,都指定了两个值,用于确定它在水平轴和垂直轴上的位置。同时,这个这个类是继承至QXYSeries类,散点图的很多功能特性和QLineSeries和QSplineSeries基本一致的。都是横纵坐标代......
  • Qt中的撤销/重做功能
    作为一个例子,本例只实现了在列表控件“添加项”和“修改项名称”的2个操作。界面上显示一个列表框,列表框需要在界面设计器中设为IconMode,这样就会是图标在上文本在下的显示样式。“添加”按钮用来在列表框中加一个项。点击图标下面的文本可以修改文本名称。程序测试环境是VS2017和......
  • react-lazy-load-image-component
    react-lazy-load-image-component1.6.0 • Public • Published 10monthsago ReadmeCode Beta2Dependencies343Dependents30VersionsReactLazyLoadImageComponentReactComponenttolazyloadimagesandothercomponents/elements.SupportsI......