程序员笔记 (二) QProcess QProcessEnvironment :: QFileInfo QIODevice


aihuafeng66t
克里斯蒂亚诺诺 2024-01-12 13:51:43 65408 赞同 0 反对 0
分类: 资源 标签: 运维
程序员笔记 (二) QProcess QProcessEnvironment :: QFileInfo QIODevice
(一)QProcess
QProcess是一个为进程间通信创建的类。在linux相关系统中,可以很方便地用它调用执行命令。
它继承自QIODevice.可以想像,它对其它进程的操作方式,就像读写一个文件一样方便。

(二)QProcessEnvironment 

在Qt下,使用 QProcess::setProcessEnvironment() 设置进程的环境变量

QProcess process;

QProcessEnvironment env;

env.insert("MYPATH", "/home/dbzhang800");

process.setProcessEnvironment(env);

process.start("./process");

QProcessEnvironment类

QProcessEnvironment QProcess::processEnvironment () const

void QProcess::setProcessEnvironment ( const QProcessEnvironment & environment )

(三)QProcessEnvironment

QProcessEnvironment可以

添加insert ( const QString & name, const QString & value )和

移除remove ( const QString & name )环境变量值,

判断某个环境变量是否存在contains ( const QString & name ) const,

返回系统环境变量列表QStringList QProcessEnvironment::toStringList () const,

取得某个变量的值,QString QProcessEnvironment::value ( const QString & name, const QString & defaultValue = QString() ) const。

判断环境变量是否为空 isEmpty() ,和清空环境变量 clear()

(四):: 

双冒号 :: 操作符被称为域操作符(scope operator),含义和用法如下:

1.在类外部声明成员函数。void Point::Area(){};

2.调用全局函数;表示引用成员函数变量及作用域,作用域成员运算符 例:System::Math::Sqrt() 相当于System.Math.Sqrt()。

3.调用类的静态方法:如:CDisplay::display()。

把域看作是一个可视窗口全局域的对象在它被定义的整个文件里,一直到文件末尾都是可见的。在一个函数内被定义的对象是局域的(local scope), 它只在定义其的函数体内可见。每个类维持一个域,在这个域之外 ,它的成员是不可见的。类域操作符告诉编译器后面的标识符可在该类的范围内被找到。

图片

(五)QFileInfo 

QFileInfo 类提供了与系统无关的文件信息,包括文件的名称、在文件系统中的位置(路径)、文件的访问权限以及是否是一个目录或者符号链接等。

QFileInfo 也可以获得文件的大小和最近一次修改/读取的时间,还可以获得Qt资源的相关信息。

QFileInfo 可以使用相对路径或者绝对路径来指向一个文件。

QString QFileInfo::absoluteFilePath() const

返回包含文件名的绝对路径。

QString QFileInfo::path() const

返回文件的路径。不包括文件名。

QString QFileInfo::fileName() const

返回文件的名称, 不包括路径

QString QFileInfo::baseName() const

返回没有路径的文件的基名称。

基名称由文件中的所有字符组成, 直到 (但不包括) 第一个 "." 字符。

QString QFileInfo::suffix() const

返回文件的后缀

(六)QIODevice

QIODevice中实现了Qt中的所有I/O方法,其他用到IO的类如QFile、QBuffer、QTcpSocket,都是从这个类继承而来。

QIODevice是抽象类,不能实例化,但是可以用多态技术,来定义一个QIODevice去承接一个从它继承而来的实现类。

在读写之前,open()一个文件时必须先设置正确的OpenMode(如ReadOnly或ReadWrite)。之后就可以调用write()、putChar()向其中write,调用read()、readLine()、readAll()来read。完成read、write后调用close()。

有两种Device:①随机访问;②顺序访问。

①随机访问:调用seek()转移到文件中任意位置,调用pos()查看当前位置。QFile、QBuffer是随机访问的典型;

②顺序访问:不能从任意位置开始。数据读取必须一个接一个。QTcpSocket、QProcess是顺序访问的典型。

如何判断是哪种device呢?调用isSequential()方法。

QIODevice会发射readyRead()当新的数据已经准备好reading,例如,读取的时候,有新的数据到达网络或额外的数据被添加到文件中。我们可以调用bytesAvailable()来判断现在有多少个bytes是准备读取的。当QTcpSocket程序处理异步数据时,经常会有数据不定时的到达,这时bytesAvailable()通常和readyRead()信号联用。当有数据要write时,QIODevice会发射bytesWritten()信号,此时用bytesToWrite()可以知道有多少bytes等待写入。

(七)QDateTime 

获取当前时间

QDateTime begin_time = QDateTime::currentDateTime();//获取系统现在的时间

QDateTime转QString

QDateTime begin_time = QDateTime::currentDateTime();//获取系统现在的时间

QString begin =begin_time .toString("yyyy.MM.dd hh:mm:ss.zzz ddd");

debug(2019.03.13 14:47:24:333 周三)

QString转QDateTime

QString begin= "2019-03-31 12:24:36";

QDateTime begin_time = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss");  

https://blog.csdn.net/iloveqt5/article/details/25335497

https://blog.csdn.net/liulihuo_gyh/article/details/47379227

https://blog.csdn.net/qq_41768362/article/details/91627426

https://blog.csdn.net/QtCompany/article/details/129731297

https://blog.csdn.net/u010304326/article/details/88532092

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
克里斯蒂亚诺诺L1
粉丝 0 资源 831 + 关注 私信
最近热门资源
国产操作系统环境搭建(内含镜像资源链接和提取码)  89
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD  88
分享几个在日常办公中可以用到的shell脚本  81
以openkylin为例编译安装内核  79
bat脚本生成查看电脑配置\硬件信息  78
常见系统问题及其解决方法  77
分享解决宏碁电脑关机时自动重启的方法  75
统信uosboot区分未挂载导致更新备份失败  69
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作  69
统信uos安装mysql的实例参考  63
最近下载排行榜
国产操作系统环境搭建(内含镜像资源链接和提取码) 0
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD 0
分享几个在日常办公中可以用到的shell脚本 0
以openkylin为例编译安装内核 0
bat脚本生成查看电脑配置\硬件信息 0
常见系统问题及其解决方法 0
分享解决宏碁电脑关机时自动重启的方法 0
统信uosboot区分未挂载导致更新备份失败 0
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作 0
统信uos安装mysql的实例参考 0
作者收入月榜
1

prtyaa 收益401.13元

2

zlj141319 收益237.91元

3

哆啦漫漫喵 收益231.75元

4

IT-feng 收益219.92元

5

1843880570 收益214.2元

6

风晓 收益208.24元

7

777 收益173.17元

8

Fhawking 收益106.6元

9

信创来了 收益106.03元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

添加我为好友,拉您入交流群!

请使用微信扫一扫!