首页 > 电脑专区 > 电脑教程 >

如何使Qt程序可重启

来源:互联网 2023-02-21 18:12:10 版权归原作者所有,如有侵权,请联系我们

我们经常需要程序更新,升级,或者是因为某些故障而需要重启,最常见的就是QQ里面的重启程序错误对话框了,所以只要你的程序是被用户使用的,原则上都需要编写重启程序模块的。这里我们说一下如何使用Qt编写可重启的程序!9el办公区 - 实用经验教程分享!

如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

工具/原料

  • QtCreator4.4.1
  • Qt5.9.2

方法/步骤

  • 1

    首先,我们创建一个Qt widget程序,编译器去选xx.ui.qml选择5.6版本就可以了,如果你的qt5是其他版本的话,选择低一两个版本的都可以的。然后就是一路下一步就可以了。这里我就直接基于MainWindow默认就可以了,如果你还有其他需求在这个基础上修改就可以了。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 2

    创建完程序后,我们这里顺便看看如何使用QAction吧。所以这里我就没有拖出按钮等其他控件了,代码目前不需要修改,具体程序目录结构如下图。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 3

    接下来,我们首先定义一个reboot重启函数,作为一个槽函数,当程序重启的时候,我们传入一个自定义的参数,以备我们在main函数中使用,这里我们定义这个程序退出值为-1,这里值任意即可,你可以定义为-10,-100,随意。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 4

    接下来,有的人可能会想到,我还没有声明,出错了。这里主要是告诉大家一个技巧,QtCreator中经常用到了,就是右键快捷键自动补充声明和定义,我们右键点击上图的reboot函数,然后选择refactor,添加public slots声明,如果你是先声明,那也是一样的操作,就可以自动补充函数定义的框架了。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 5

    重启的槽函数里我们打印了一句话,待会儿测试用,然后设置退出码,qApp是QApplication的全局变量,我们创建程序的时候就存在了。所以使用qApp设置即可。然后我们声明一个QAction变量,这里用来作为测试的时候,用来点击的,实际运用的时候,大家可以在自己的事件,信号里面使用即可。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 6

    QAction变量定义好了以后,我们就算是完成一半工作了,最关键的一步就是添加好这个QAction和我们槽函数reboot的连接,即图中的connect函数部分,这里的写法是Qt5中的写法,Qt4的写法是有SIGNAL和SLOT宏的写法,不过两者可以通用的,Qt5中作了扩展。以后我们再来说扩展部分怎么用吧。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 7

    最后我们就需要修改main函数部分了,main函数我们主要修改gui线程的返回值,这里我们做一个循环,当我们点击重启,退出值就会设置为我们的-1,于是程序就会重启。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 8

    最终运行结果如下图,点击菜单栏的重启,程序重启,下方调试窗口出现我们的打印语句。9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

    如何使Qt程序可重启?9el办公区 - 实用经验教程分享!

  • 8此文章未经授权抓取自百度经验
  • 注意事项

    • 注意Qt5中信号和槽的写法和Qt4是通用的。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!9el办公区 - 实用经验教程分享!


    标签: 操作系统程序

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号