qt进程编程的使用:一个程序中调用另一个程序

在QT编程中有时候需要调用一个已经写好的程序来处理正在编写的程序中的数据,这个时候就

需要用到进程来调用那个已经写好的程序。

事先编写好一个layout程序:

#include<QApplication>
#include<QPushButton>
#include<QGridLayout>
#include<QLabel>
#include<QLineEdit>
#include<QMainWindow>

int main(int argc, char *argv[])
{
 QApplication app(argc, argv);

 QWidget *window = new QWidget;

 QGridLayout *vLayout = new QGridLayout(window);
 QLabel *label1 = new QLabel("Query",window );
 vLayout->addWidget(label1,0,0);
 QLineEdit *edit1 = new QLineEdit(window);
 vLayout->addWidget(edit1,0,1);
 QPushButton *button1 = new QPushButton("Query", window);
 vLayout->addWidget(button1,0,2);

 QLabel *label2 = new QLabel("Answer",window );
 vLayout->addWidget(label2,1,0);
 QLineEdit *edit2 = new QLineEdit(window);
 vLayout->addWidget(edit2,1,1);
 QPushButton *button2 = new QPushButton("Clear", window);
 vLayout->addWidget(button2,1,2);

 window->setLayout(vLayout);
 window->show();

 return app.exec();
}

放在layout文件夹下

qmake -project

qmake

make

得到layout可执行文件

在写另一个程序时添加如下代码即可调用lauot程序:

QString program = "../layout/layout";//指定要调用的可执行程序的路径
 QProcess *myProcess = new QProcess(this);
 //this表示myprocess的父窗口是本程序中的主窗口,当主窗口关闭时,进程也会终止,
 //如果不填加this,myprocess是独立的进程,主窗口关闭,进程依然运行
 myProcess->start(program);

如果程序带参数,则写成如下形式:

QString program = "../layout/layout";
 QStringList arguments;
 arguments << "*" << "*"; //添加参数
 QProcess *myProcess = new QProcess(this);
 myProcess->start(program, arguments);

参考:QT帮助文档

时间: 2024-08-27 15:36:12

qt进程编程的使用:一个程序中调用另一个程序的相关文章

CI框架中一个类中调用另一个类中已经加载对象测试

controller.php 1 <?php 2 class CI_Controller { 3 4 private static $instance; 5 6 public function __construct() 7 { 8 self::$instance =& $this; 9 10 foreach (is_loaded() as $var => $class) 11 { 12 $this->$var =& load_class($class); 13 $obj

vc++ 在程序中运行另一个程序的方法

在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂.    WinExec 两个参数,前一个指定路径,后一个指定显示方式.    ShellExecute 可以指定工作目录,并且还可以寻找文件

[C#]在程序中启动另外一个程序

C#实现在程序中启动另外一个程序 ProcessStartInfo info = new ProcessStartInfo();    info.FileName = "notepad++.exe";//要启动的程序外部名称   info.Arguments = "1009.txt";//设置外部程序的启动参数    info.WorkingDirectory = @"D:\Users\Desktop";    Process pro;//申明一

在ASP.NET MVC应用程序中随机获取一个字符串

在开发ASP.NET MVC应用程序时,有可能需要一个随机字符串,作为密码或是验证码等. 如果你需要的是SQL版本,可以参考<密码需要带特殊字符(二)>http://www.cnblogs.com/insus/archive/2012/02/16/2354453.html 此篇实现方法多少是参照这个实现C#版本. 在应用程序下,创建一个CharacterUtility.cs: 这个类别中,分别有几个静态方法:一,为随机的小写字母: 二,是随机产生大写字母: 三,是随机产生数字: 四,是产生特殊

Android - 在一个应用程序中启动另外一个已经安装的应用程序或系统程序(前提是要知道该应用程序的主activity和包名)

//组件名称,第一个参数是应用程序的包名,后一个是这个应用程序的主Activity ComponentName com = new ComponentName("com.antroid.Test", "com.antroid.Test.TestActivity"); Intent  intent = new Intent(); //设置部件 intent.setComponent(com); startActivity(intent); 我们也可以使用下面的代码启动

c程序中调用matlab

c程序调用matlab 方法一: 在c程序中调用matlab引擎(相当于打开一个精简版matlab然后往里输入命令,即客户机/服务器模式, c程序为客户机,matlab作为本地服务器) 方法二:将m文件打包成dll文件,然后在c语言环境下调用 优缺点分析: 方法一,易于实现,可以实时监控程序的运行,但独立性差,速度慢,需要安装完整版matlab,且每次调用都会启动matlab.exe进程: 方法二,实现复杂,调试麻烦,但只需要安装mcr(matlab component runtime),耗费资

Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)

文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Application 有何妙用: 5. MJ0011 关于 Native Application 的文章整理: 6. 互联网上其他关于 Native Application 的文章整理: 7. 小结: 1. 引子: 其实在好久以前就看了 MJ0011 翻译的那个<Native 应用程序详细>系列的文

[转]VC中调用外部exe程序方式

本文转自:http://blog.sina.com.cn/s/blog_486285690100ljwu.html 目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了<vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess>,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题). 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实

[转]vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess

三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂.    WinExec 两个参数,前一个指定路径,后一个指定显示方式.    ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等.    Cr