给QT程序升级的一种办法

远程无人值守的机器,需要升级的时候,如果需要替换主程序,可以先下载新的主程序(放到临时目录).确保下载的程序完整以后,将老程序替换成新程序.然后老程序(正在运行的程序)启动外部程序(一般是一个shell),注意在QT程序中启动另外一个shell的时候可以使用如下代码:

QProcess* pro = new QProcess();
pro->startDetached(QDir::currentPath()+"/myShell.sh");
exit(0);//主程序kill自己

而myShell.sh中的代码可以这样写:

#!/bin/bash
pkill myApp
echo " 等待启动中..."
sleep 1
echo " 开始启动..."
./myApp&
echo " 启动完毕..."
exit

以上是我自己的一点简单实现,文中没有考虑更多复杂环境的情况,仅是一个思路参考.

时间: 2024-10-15 07:57:44

给QT程序升级的一种办法的相关文章

Qt 延时处理的几种办法

有些时候,我们需要程序延时一会儿: 这里提供四种方法: 1.多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait()进行延时处理. Sleep不会释放对象锁,其他线程无法访问对象,因此会阻塞线程:而Wait会释放对象锁,使得其他线程能够访问该对象. 2.自定义延时函数:使用QEventLoop 1 void Widget::Sleep(int msec) 2 { 3 QTime dieTime = Q

解决Qt程序在Linux下无法输入中文的办法(与下文连接)

在安装QT集成开发工具包之前需要先安装build-essential和libncurses5-dev这两个开发工具和库,libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数库,build-essential里面包括一些Linux下开发的必要工具.在ubuntu中我们使用QT进行开发也用到了这两个工具库.安装命令为:sudo apt-get install build-essential libncurses5-dev. 在这个库安装完成后就可以安装QT开发工具包了,具

c#程序以管理员身份运行(三种办法)

三种办法: 一.设置程序本身的属性:勾选"以管理员身份运行此程序",必要时设置"更改所有用户设置-以管理员身份运行此程序",当然这种办法是被动的,也不是最实际的办法: 二.代码法: static void Main(string[] Args) { /** * 当前用户是管理员的时候,直接启动应用程序 * 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行 */ //获得当前登录的Windows用户标示 System.Security.Principa

解决Qt程序在Linux下无法输入中文的办法

一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Creator都无法支持.后面看了一些资料,了解了Qt应用程序的方法,这里和大家分享一下. 写一个bash脚本,内容如下: #!/bin/sh cd YourBinaryDirectory export QT_IM_MODULE=iBus ./YourProjectBinary 如果想让Qt Creator也能输入中文,那么可以这么写: #!/bi

Qt程序启动画面播放(gif与swf两种动画格式)

学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找不到好的书籍或文章可以马上学习.上手. 今天,就把前段时间对启动画面播放的学习及尝试做一个小小的总结.如果对大家有所帮助,那自然好:如果有什么不足或有什么可以改进的地方,还望朋友们多给点意见及建议,谢谢! 过程很简单,只是建立了一个基于Qt控制台的项目,文件也只有一个——"main.cpp"

关于node-webkit安装程序制作的另一种办法

node-webkit是一个让我们很方便的利用node和webkit内核,前后团都用js,轻松方便的开发出c端应用程序的技术,多余的介绍不必多说,需要详细制动的请大家自行google, 我这里说一下安装程序的制作,由于node-webkit 以下简称nw 是作者编译好的nw.exe来启动的,所以应用程序文件是一大堆node结构的文件和文件夹,其实就是一堆固定目录结构的html结合js,css文件,nw.exe根据程序描述文件package.json来启动主页面加载到webkit内核中的.作者介绍

亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查

QSS美化Qt程序以及最近做的Qt项目界面

什么是QSS QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制.QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上. QSS在Qt程序中的使用办法 首先将QSS写在文件中,然后利用如下的代码设置QSS: MainWidget::MainWidget(QWidget *parent) : QWidget(parent), ui(new

基于Qt有限状态机人工智能的一种实现及改进方法

基于Qt有限状态机人工智能的一种实现及改进方法 人工智能在今年是一个非常火的方向,当然了,不仅仅是今年,它一直火了很多年,有关人工智能的一些算法层出不穷.人工智能在很多领域都有应用,就拿我熟悉的游戏领域来说吧,一些寻路算法,比如说A*算法(我的<十日驱鬼记>就曾经使用了A*算法进行寻路),还有一些高级的算法,比如说决策树等,都在游戏中得以了广泛的应用.我目前想制作的项目和人工智能也有一定的关系,因此,我这个月开始学习搭建一些简单的人工智能框架. 蒋彩阳原创文章,首发地址:http://blog