qt中创建进程

进程:
1.QProcess 进程类
QProcess *a=new QProcess();

2.启动
void QProcess::start(const QString & command, OpenMode mode = ReadWrite)
void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite);
void QProcess::start(OpenMode mode = ReadWrite)

a->start("./1");

3.读写接口
qint64 QIODevice::write(const QByteArray & byteArray);
QByteArray QIODevice::readAll()

a->write();

a->readAll();
4.信号
void QProcess::readyReadStandardOutput();

5.结束
a->kill();

process.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QProcess>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();
    void get_msg();
    void start_signal1();

    void on_pushButton_2_clicked();

private:
    Ui::MainWindow *ui;
    QProcess *p;
};

#endif // MAINWINDOW_H
process.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    p = new QProcess();
connect(p,SIGNAL(readyReadStandardOutput()),this,SLOT(get_msg()));
connect(p,SIGNAL(started()),this,SLOT(start_signal1()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
p->start("ls");
}
void MainWindow::get_msg()
{
while(p->canReadLine())
{
    QString tmp = p->readLine();
    ui->listWidget->addItem(tmp);
}

}
void MainWindow::start_signal1()
{
    qDebug()<<"start";

}

void MainWindow::on_pushButton_2_clicked()
{
      delete ui->listWidget->currentItem();
  //  ui->listWidget->removeItemWidget(ui->listWidget->currentItem());

    qDebug()<<"remove";
    //ui->listWidget->clear();
}
时间: 2024-10-24 23:26:01

qt中创建进程的相关文章

qt中进程的使用

qt中的进程使用需要用到头文件:include<QProcess> 首先来看看需要用到的主要的函数 (1)进程的定义: QProcess *mprocess; //定义一个进程参数 (2)进程的初始化: //初始化进程对象 mprocess = new QProcess(); (3)启动进程 //启动计算器 mprocess->start("calc"); (4)使用进程读取数据 while(mprocess->canReadLine()) //全部读出进程中的

Java 多线程详解(二)------如何创建进程和线程

Java 多线程详解(一)------概念的引入:http://www.cnblogs.com/ysocean/p/6882988.html 在上一篇博客中,我们已经介绍了并发和并行的区别,以及进程和线程的理解,那么在Java 中如何创建进程和线程呢? 1.在 Windows 操作系统中创建进程 在 windows 操作系统中,我们创建一个进程通常就是打开某个应用软件,这便在电脑中创建了一个进程.更原始一点的,我们在命令提示符中来做(我们以打开记事本这个进程为例): 第一步:windows+R,

Qt中调用PolarSSL库(一)

最近一直在学习SSL相关的知识,也是先了解理论相关的知识,主要是SSL相关的基本概念和连接建立过程,主要是基于PolarSSL开源库进行学习.学习完了之后就希望能给有所运用,就想用Qt写一个简单的程序,增加对SSL相关概念的把握和对PolarSSL库的运用.当然,最终希望是可以使用Qt做一个比较完善的工具,帮助大家更好的理解和学习SSL相关知识.这都是后话,在第一篇里面,我们就简单用例子展示如何在Qt里面调用PolarSSL库. 这篇博客主要是讲解Qt里面调用PolarSSL库,至于SSL相关概

delphi中获得进程列表或想要的进程(枚举进程、遍历进程)

一个常见的编程任务是枚举所有运行的"应用程序".Windows 任务管理器就是一个很好的例子.它用两种方式列出"应用程序".任务管理器的第一个选项卡列出桌面上的所有"应用程序窗口".第二个选项卡列出系统中的所有"进程".本文提供了如何执行这些任务的详细信息. 枚举顶层窗口如果将枚举进程与枚举桌面上的顶层窗口进行比较,那么枚举顶层窗口可能更容易一些.要枚举顶层窗口,请使用 EnumWindows() 函数.不要使用 GetWin

二、创建进程和线程

1.在 Windows 操作系统中创建进程 在 windows 操作系统中,我们创建一个进程通常就是打开某个应用软件,这便在电脑中创建了一个进程.更原始一点的,我们在命令提示符中来做(我们以打开记事本这个进程为例): 第一步:windows+R,输入cmd,打开 cmd 命令提示符 第二步:在命令提示符中输入 notepad,按 Enter 键便会弹出记事本应用软件 PS:常用的windows 应用软件命令 1.regedit:打开注册表编辑器 2.control:打开控制面板 3.msconf

Python程序中的进程操作-开启多进程(multiprocess.process)

目录 一.multiprocess模块 二.multiprocess.process模块 三.process模块介绍 3.1 方法介绍 3.2 属性介绍 3.3 在windows中使用process模块的注意事项 四.使用process模块创建进程 4.1 在Python中启动的第一个子进程 4.2 join方法 4.3 查看主进程和子进程的进程号 4.4 多个进程同时运行 4.5 多个进程同时运行,再谈join方法(1) 4.6 多个进程同时运行,再谈join方法(2) 4.7 通过继承Pro

110 python程序中的进程操作-开启多进程

之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程.多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快.以我们之前所学的知识,并不能实现创建进程这个功能,所以我们就需要借助python中强大的模块. 一.multiprocess模块 仔细说来,multipro

C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?

原文:C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 在 .NET 中创建进程时,可以传入 ProcessStartInfo 类的一个新实例.在此类型中,有一个 UseShellExecute 属性. 本文介绍 UseShellExecute 属性的作用,设为 true 和 false 时,分别有哪些进程启动行为上的差异. 本文内容 本质差异 效果差异 如何选择 本质差异 Process.Start 本质上是启动一个新的

Java中如何创建进程(转)

在Java中,可以通过两种方式来创建进程,总共涉及到5个主要的类. 第一种方式是通过Runtime.exec()方法来创建一个进程,第二种方法是通过ProcessBuilder的start方法来创建进程.下面就来讲一讲这2种方式的区别和联系. 首先要讲的是Process类,Process类是一个抽象类,在它里面主要有几个抽象的方法,这个可以通过查看Process类的源代码得知: 位于java.lang.Process路径下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15