(二)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
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
添加我为好友,拉您入交流群!
请使用微信扫一扫!