随笔分类 -  Qt-Process

摘要:Qt 的内部进程通信机制 续欣 (xxin76@hotmail.com), 博士、大学讲师 2004 年 4 月 01 日 Qt 作为一种跨平台的基于 C++ 的 GUI 系统,能够提供给用户构造图形用户界面的强大功能。自从 1996 年 Qt 被 Trolltech 公司发布以来,该系统成为世界上 阅读全文
posted @ 2016-03-25 00:17 findumars 阅读(1879) 评论(0) 推荐(0) 编辑
摘要:Qt从5.2版开始提供了两个类QCommandLineOption和QCommandLineParser来解析应用的命令行参数。 一、命令行写法命令行:"-abc" 在QCommandLineParser的解析模式为ParseAsCompactedShortOptions(默认)时会被认为是3个参数 阅读全文
posted @ 2016-03-14 22:35 findumars 阅读(2534) 评论(0) 推荐(0) 编辑
摘要:简述 QProcess可以用来启动外部程序,并与它们交互。 要启动一个进程,通过调用start()来进行,参数包含程序的名称和命令行参数,参数作为一个QStringList的单个字符串。 另外,也可以使用setProgram()和setArguments()来运行,然后调用start()或open( 阅读全文
posted @ 2016-03-06 23:40 findumars 阅读(11499) 评论(0) 推荐(0) 编辑
摘要:所谓 IO 其实不过是与其他设备之间的数据交互。在 Linux 上这个概念或许会更加清楚一些。Linux 把所有设备都看作是一种文件,因此所有的 IO 都归结到对文件的数据交互。同样,与其他进程之间也存在着数据交互,这就是进程间交互。 为什么需要进程间交互呢?Qt 虽然是一个很庞大的库,但是也不能面 阅读全文
posted @ 2016-02-01 20:53 findumars 阅读(15179) 评论(0) 推荐(1) 编辑
摘要:今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态。我这里实现了一个简单的文本编辑窗口,可以设置文本的字体,字体的颜色和背景色。每次关闭程序都保存程序的几何大小,位置和文本以及文本所设置的格式,方便启动程序后继续编辑。 文本编辑窗口 Text 阅读全文
posted @ 2016-02-01 19:15 findumars 阅读(1041) 评论(0) 推荐(0) 编辑
摘要:简介 window下开机启动最简单的实现方式就是在注册表中添加启动项目 添加位置有两个 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\SOFTWARE\Microsoft\Wind 阅读全文
posted @ 2016-01-12 18:41 findumars 阅读(1452) 评论(0) 推荐(0) 编辑
摘要:下午写程序中遇到几个小细节,需要在这里记录一下。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QProcess *process = new QProcess(this); QFileInfo fileinfo(appUrl); QString appPath = Q 阅读全文
posted @ 2016-01-08 00:56 findumars 阅读(974) 评论(0) 推荐(0) 编辑
摘要:使用CreateMutex 可以实现只启动一个应用程序实例view plaincopy to clipboardprint?#include <QApplication>#include <QtNetwork>#include "mydlg.h"#ifdef Q_WS_WIN#include <wi 阅读全文
posted @ 2015-12-17 19:45 findumars 阅读(1571) 评论(0) 推荐(0) 编辑
摘要:一、简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用。 二、详解 1、Qt结构 [cpp] view plaincopy int main(int argc, char *argv[]) { 阅读全文
posted @ 2015-11-16 19:00 findumars 阅读(2301) 评论(0) 推荐(0) 编辑
摘要:如果限制一个程序同时只能启动一个实例,有几个可以使用的库 QtSingleApplication 以前可以免费使用,后来只有商业版能里能用,在 Github 上也有一个 LGPL 协议的实现,地址为https://github.com/qtproject/qt-solutions/tree/mast 阅读全文
posted @ 2015-11-14 22:22 findumars 阅读(845) 评论(0) 推荐(0) 编辑
摘要:记得以前写过Linux的C程序, 里面用popen打开一个子进程, 这样可以用read/write和子进程通讯, 而在子进程里则是通过从stdin读和向stdout写实现对父进程的通讯。 QProcess的底层实现用的是类似的理念。 QProcess类提供的API让父进程可以轻松地读取子进程stdo 阅读全文
posted @ 2015-11-01 09:04 findumars 阅读(9950) 评论(0) 推荐(0) 编辑
摘要:windows端的Qt程序往往需要打开外部程序(如:prog.exe),并且需要确定这个外部程序是唯一打开的。 1、判断系统中是否存在prog.exe void judge() { QProcess tasklist; tasklist.execute("tasklist", QStringList 阅读全文
posted @ 2015-10-31 01:04 findumars 阅读(7424) 评论(0) 推荐(1) 编辑
摘要:做一个无法关闭的QT程序(想关闭时要在任务管理器里关闭),看似很难, 其实它并不难,只要让程序在关闭时启动它自身就可以了。 上代码: [cpp] view plaincopyprint? #include <QtGui> class Temp : public QWidget { Q_OBJECT 阅读全文
posted @ 2015-10-01 17:26 findumars 阅读(1689) 评论(0) 推荐(0) 编辑
摘要:Qt打开外部程序 [cpp] view plaincopy //1.通过调用系统函数 system("opt/myApp"); //这是linux下的,windows下可以用WinExec等函数 //2.通过QProcess,阻塞调用 QProcess::execute("/opt/myApp"); 阅读全文
posted @ 2015-08-12 05:23 findumars 阅读(7104) 评论(0) 推荐(0) 编辑