zoukankan      html  css  js  c++  java
  • Qt简易项目计时器


    作者博客:http://www.yooongchun.com

    应用介绍

    本文介绍一个在Windows10 平台下使用Virsual Studio2017+Qt5.12.1开发的项目计时器,应用界面如下

    应用界面主要包括:

    • 项目名称
    • 工作备注
    • 作者

    以及相应的按键计时器日志显示导出

    安装Qt+VS

    首先需要安装必须的QtVS,安装可参考博主的这篇文章:http://www.yooongchun.cn/detail/26

    代码开发

    代码开发的思路是使用Qt设计师生成ui文件,然后使用Qt自带的命令行工具生成C++的头文件,生成命令如下:

    uic your_ui_file.ui -o your_ui_cpp_file.h
    

    生成之后即可通过在VS项目中引入头文件来使用,我的工程目录如下

    接下来撰写逻辑代码,这里要用到一个boost 库用来进行对象序列化操作

    安装boost库

    可到这里下载:https://www.boost.org/users/history/version_1_69_0.html

    博主下载时(2019.03.01)时最新版本是1-69-0,博主安装参考的是这篇文章:https://blog.csdn.net/fsac213330/article/details/52748223

    这里说明一点,本文的程序需要用到编译安装的boost库。

    最后打包生成exe文件,这里打包需要用到一个插件

    安装打包插件

    仍旧是在插件下载位置,搜索下载Microsoft Visual Studio Installer Project,下载安装好之后重启VS即可。

    逻辑代码

    代码较多,详情可去博主的Github下载:https://github.com/yooongchun/Timer

    打包代码

    程序撰写完毕并且无错误后需要进行代码打包,这里博主的程序使用Release 64bit模式生成。

    首先选择文件–>添加–>工程,然后按如下图选择工程

    接下来配置工程

    STEP 1:添加主输出

    __

    STEP 2:添加程序图标文件(可选)

    STEP 3:添加项目文件夹

    STEP 4:生成安装器

    生成的文件在工程的Setup目录的Release目录下。

    添加动态链接文件

    上述步骤生成的程序安装后运行会出现如下错误:

    this application failed to start because it could not find or load the qt platform plugin 'windows' in ''
    

    原因是缺少运行程序必须的动态链接库。为了解决这个问题,首先,需要知道程序依赖哪些dll库,使用VS自带的命令行工具可查看,打开命令行工具,切换到exe程序所在目录,执行以下命令

    dumpbin /imports your_file.exe >out.txt
    

    执行完之后会生成一个out.txt的文件,里面有依赖的dll文件,在系统中搜索这些文件名,把这些文件在统一复制到一个文件夹内,以备后用。

    下载安装打包工具

    接下来要把这些链接库打包进your_file.exe中,当然,你要是不想打包,将上述文件夹路径添加到系统路径也可以运行。打包需要安装一个软件,首先下载Inno Setup软件:http://www.jrsoftware.org/isdl.php

    安装好之后进行打包

    创建新脚本:

    填写程序名称、版本号、发行者、网站等信息

    浏览到exe文件位置选择exe,并天机刚才准备的dll文件

    填写生成的安装包输出位置及相应信息

    没有提到的选择默认信息即可,最后执行脚本生成文件。

    生成文件进行安装,安装完毕启动程序:

    VS工程下载地址

    Github 地址:https://github.com/yooongchun/Timer

    软件下载地址

    博主个人网站资源栏目简易项目计时器:http://www.yooongchun.cn/resource/1/

  • 相关阅读:
    vue强制更新$forceUpdate()
    js数组拼接成字符串,去除最后一个逗号
    JavaScript数组遍历:for、foreach、for in、for of、、().each的区别
    json.stringify()的妙用,json.stringify()与json.parse()的区别
    第四次博客作业-结对项目
    于达——第九次作业
    于达——第八次作业
    软件工程第三次作业——关于软件质量保障初探
    于达——第七次作业
    于达——第六次作业
  • 原文地址:https://www.cnblogs.com/yczha/p/13160198.html
Copyright © 2011-2022 走看看