简介

QDir类提供了访问系统目录结构及其内容的与平台无关的方式。

头文件:#include <qdir.h>

QDir类用来操作路径名及底层文件系统,获取关于目录路径及文件的相关信息,也可以用来获取Qt资源系统的文件信息。
QDir类使用相对或绝对文件路径来指向一个文件/目录。
绝对路径是从目录分隔符“/”或者带有一个驱动器标识(除了在Unix下)。
如果总是使用“/”作为目录分隔符,Qt将会把你的路径转化为符合底层的操作系统的。
相对文件名是由一个目录名称或者文件名开始并且指定一个相对于当前路径的路径。
绝对路径示例:

其中第二个路径是Windows系统下,它指向的路径是:C:\Documents and Secctings。
相对路径示例:

注意当前路径是指应用程序的工作目录,而QDir自己的路径可以通过setPath()设置并且通过path()获得。
可以使用QDir类的方法isRelative()或者是isAbsolute()来判断QDir指向的路径是相对路径还是绝对路径,如果是相对路径,可使用方法makeAbsolute()将相对路径转换为绝对路径。

1. 目录及导航操作

QDir类对象所关联的目录路径可以使用path()函数获得,可以使用setPath()方法来设置新的路径;

可以使用方法absolutePath()来获得目录的绝对路径。

目录名可以使用dirName()方法来获得,该方法返回绝对路径中的最后一个项目,即目录名,但如果QDir关联的是当前工作目录,则返回"."。

可以使用mkdir()方法来创建一个目录;
使用rename()方法来对关联目录进行重命名;
使用rmdir()方法来移除一个目录;
使用exists()方法检测目录是否存在;
使用refresh()方法来刷新目录内容。
其余方法详见QDir类的API文档。

2. 文件及目录内容

文件系统中目录中一般包括文件、子目录及符号链接;

可以使用count()方法来获得QDir类对象关联的目录中的条目数目;
可以使用entryList()获取所有条目的名称;
可以使用entryInfoList()来获取条目的QFileInfo内容。
可以使用filePath()及absoluteFilePath()来获得QDir中指定文件的路径名,但这两个函数均不检查指定的文件是否存在;
可以使用remove()方法来删除指定文件;
可以使用过滤器来获取指定类型的文件,当文件符合过滤器指定条件时被保留;
过滤器中的内容实际上是一个stringList。

3. 当前目录及其他特定路径

可以使用一些静态函数来访问指定的路径,这些函数返回一个QDir对象:

可以使用静态函数setCurrent()来设置应用程序的工作路径。

4.API中的实例

参考一个目录是否存在

 QDir d( "example" );                        // “./example”
if ( !d.exists() )
qWarning( "Cannot find the example directory" );

一个列出当前目录中所有文件(不包括符号连接)的程序,按大小排序,小的在前。

#include <stdio.h>
#include <qdir.h> int main( int argc, char **argv )
{
QDir d;
d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
d.setSorting( QDir::Size | QDir::Reversed ); const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi; printf( " Bytes Filename\n" );
while ( (fi = it.current()) != ) {
printf( "%10li %s\n", fi->size(), fi->fileName()。latin1() );
++it;
}
return ;
}

5. QDir中的Filter枚举变量

enum QDir::Filter 与 flags QDir::Filters 中常用的枚举变量值及其含义如下:

QDir::Dirs 0x001 列出目录;
QDir::AllDirs 0x400 列出所有目录,不对目录名进行过滤;
QDir::Files 0x002 列出文件;
QDir::Drives0x004 列出逻辑驱动器名称,该枚举变量在Linux/Unix中将被忽略;
QDir::NoSymLinks 0x008 不列出符号链接;
QDir::NoDotAndDotDot 0x1000 不列出文件系统中的特殊文件.及..;
QDir::NoDot 0x2000 不列出.文件,即指向当前目录的软链接
QDir::NoDotDot0x4000 不列出..文件;
QDir::AllEntries 其值为Dirs | Files | Drives,列出目录、文件、驱动器及软链接等所有文件;
QDir::Readable 0x010 列出当前应用有读权限的文件或目录;
QDir::Writable 0x020 列出当前应用有写权限的文件或目录;
QDir::Executable0x040 列出当前应用有执行权限的文件或目录;
Readable、Writable及Executable均需要和Dirs或Files枚举值联合使用;
QDir::Modified0x080 列出已被修改的文件,该值在Linux/Unix系统中将被忽略;
QDir::Hidden0x100 列出隐藏文件;
QDir::System0x200 列出系统文件;
QDir::CaseSensitive0x800 设定过滤器为大小写敏感。

6. QDir中的SortFlag枚举变量

这个枚举变量描述的是QDir如何排列由 entryList() 或 entryInfoList() 返回的条目。被指定的排列的值可以由下述列表中的值或运算得到:

  • QDir::Name - 按名称排序。
  • QDir::Time - 按时间排序(修改时间)。
  • QDir::Size - 按文件大小排序。
  • QDir::Unsorted - 不排序。
  • QDir::SortByMask - Name、Time和Size的掩码。
  • QDir::DirsFirst - 首先是目录,然后是文件。
  • QDir::Reversed - 相反的排序顺序。
  • QDir::IgnoreCase - 不区分大小写进行排序。
  • QDir::DefaultSort - 内部标记。

前四种中你只能指定一个。

如果你同时指定DirsFirst和Reversed,目录仍然会被放在前面,但是按照反向的顺序,文件仍然排在目录后面,当然也是按照反向的顺序。

7.成员函数文档

QDir::QDir ()

构造一个指向当前目录的QDir。

也可以参考currentDirPath()。

QDir::QDir ( const QString & path, const QString & nameFilter = QString::null, int sortSpec = Name | IgnoreCase, int filterSpec = All )

构造一个路径为path、名称过滤器为nameFilter并且属性过滤器为filterSpec的QDir。它也使用sortSpec来排列名称。

默认的nameFilter是一个空字符串,不包含任何东西,默认的filterSpec是All,也就是说也不包含任何东西。默认的sortSpecName|IgnoreCase,也就是说不区分大小写按名称排序。

下面是列出“/tmp”中所有文件的实例:

    QDir d( "/tmp" );
for ( int i = 0; i < d.count(); i++ )
printf( "%s\n", d[i] );

如果path为“”或零,QDir使用“.”(当前目录)。如果nameFilter为“”或零,QDir使用“*”(所有文件)。

注意path不需要存在。

也可以参考exists()、setPath()、setNameFilter()、setFilter()和setSorting()。

QDir::QDir ( const QDir & d )

构造一个目录d的复制的QDir。

也可以参考operator=()。

QDir::~QDir () [虚]

销毁QDir并且释放它的资源。

QString QDir::absFilePath ( const QString & fileName, bool acceptAbsPath = TRUE ) const [虚]

返回路径中一个文件的绝对路径名称。检查这个文件是否真的存在于这个目录中。在fileName中多余的分隔符或者“.”和“..”目录将被移除(请参考cleanDirPath())。

如果acceptAbsPath为真,由分隔符“/”开始的fileName将会被不改变地立即返回。如果acceptAbsPath为假,绝对路径将被被加到fileName的前面并且结果字符串被返回。

也可以参考filePath()。

QString QDir::absPath () const [虚]

返回绝对路径(一个由“/”或驱动器标识开始的路径),可能包含符号连接,但是不会包含“.”、“..”或者多个分隔符。

也可以参考setPath()、canonicalPath()、exists()、cleanDirPath()、dirName()和absFilePath()。

实例:fileiconview/qfileiconview.cpp。

QString QDir::canonicalPath () const [虚]

返回规范的路径,也就是没有符号连接或者多余的“.”、“..”元素的路径。

在没有符号连接的系统上,这个函数总是返回和absPath()返回值一样的值。如果规范路径不存在(通常是因为挂起的符号连接)。

也可以参考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和QString::isNull()。

bool QDir::cd ( const QString & dirName, bool acceptAbsPath = TRUE ) [虚]

改变QDir的目录为dirName

如果acceptAbsPath为真,由分隔符“/”开始的路径将会导致这个函数改变到这个绝对路径。如果acceptAbsPath为假,dirName前面的任何数量的分隔符都将被移除并且这个函数将会进入到dirName中。

如果新的路径存在并且是可读的,返回真。注意如果新的目录不存在,逻辑上的cd()操作不会被执行。

调用cd( ".." )等于调用cdUp()。

也可以参考cdUp()、isReadable()、exists()和path()。

实例:fileiconview/mainwindow.cpp。

bool QDir::cdUp () [虚]

改变目录为QDir的当前目录的上一级目录。

如果新的路径存在并且是可读的,返回真。注意如果新的目录不存在,逻辑上的cdUp()操作不会被执行。

也可以参考cd()、isReadable()、exists()和path()。

QString QDir::cleanDirPath ( const QString & filePath ) [静态]

移除filePath的多重目录分隔符“/”并且解析其中的“.”或者“..”。

符号连接会被保留。这个函数不返回规范路径,但会是输入的最简化的版本。“./local”变为“local”、“local/../bin”变为“bin”并且“/local/usr/../bin”变为“/local/bin”。

也可以参考absPath()和canonicalPath()。

QString QDir::convertSeparators ( const QString & pathName ) [静态]

pathName里面的“/”分隔符转化为适用于底层操作系统的分隔符。返回转化的字符串。

在Windows上,convertSeparators("c:/winnt/system32")返回“c:\winnt\system32”。

在一些操作系统上,例如在Unix上,返回的字符串可能和参数是一样的。

void QDir::convertToAbs () [虚]

把目录路经转化为绝对路径。如果它已经是绝对路径了,就什么也不做。

也可以参考isRelative()。

uint QDir::count () const

返回找到的目录和文件的数量。

Equivalent to entryList()。count()。

也可以参考operator[]()和entryList()。

QDir QDir::current () [静态]

返回应用程序当前目录。

使用path()来访问QDir对象的路径。

也可以参考currentDirPath()和QDir::QDir()。

QString QDir::currentDirPath () [静态]

返回应用程序当前目录的绝对路径。

也可以参考current()。

实例:helpviewer/helpwindow.cpp和qdir/qdir.cpp。

QString QDir::dirName () const [虚]

返回目录的名称,这和路径是不同的,例如一个名称为“mail”的目录,也许路径为“/var/spool/mail”。如果目录没有名字(例如,它是根目录),一个零字符串被返回。

不会执行检测来确保这个名称的目录真正存在。

也可以参考path()、absPath()、absFilePath()、exists()和QString::isNull()。

const QFileInfoList * QDir::drives () [静态]

返回这个系统中根目录的列表。在Windows中,这将返回许多包含“”、“”等等的QFileInfo对象。在其它操作系统,它返回的是只包含一个根目录(例如“/”)的列表。

返回的指针的所有权归Qt。调用者不要删除或者修改它。

实例:dirview/main.cpp。

QStrList QDir::encodedEntryList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

这个函数被包含是因为可以很容易地从Qt 1.x移植到Qt 3.0,它和entryList()是一样地,但是文件名的编码方式是使用QFile::encodedName()的8位字符串。

使用它比使用entryList()更有效率。

QStrList QDir::encodedEntryList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

这是一个重载成员函数,用于提供方便。它的行为基于上面的函数。

这个函数被包含是因为可以很容易地从Qt 1.x移植到Qt 3.0,它和entryList()是一样地,但是文件名的编码方式是使用QFile::encodedName()的8位字符串。

使用它比使用entryList()更有效率。

const QFileInfoList * QDir::entryInfoList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]

返回这个目录中所有目录和文件的QFileInfo对象的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。

过滤器和排序的规定可以使用nameFilterfilterSpecsortSpec参数来指定。

如果这个目录是不可读的或者不存在,返回0。

返回的指针是一个指向QFileInfoList的常量指针。这个列表归QDir对象所有并且将会在同一个QDir实例下次调用entryInfoList()时被重新使用。如果你想在调用这个函数之后保留这个列表的条目,你将需要复制它们。

也可以参考entryList()、setNameFilter()、setSorting()和setFilter()。

实例:dirview/dirview.cpp和fileiconview/qfileiconview.cpp。

const QFileInfoList * QDir::entryInfoList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回这个目录中所有目录和文件的QFileInfo对象的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。

过滤器和排序的规定可以使用filterSpecsortSpec参数来指定。

如果这个目录是不可读的或者不存在,返回0。

返回的指针是一个指向QFileInfoList的常量指针。这个列表归QDir对象所有并且将会在同一个QDir实例下次调用entryInfoList()时被重新使用。如果你想在调用这个函数之后保留这个列表的条目,你将需要复制它们。

也可以参考entryList()、setNameFilter()、setSorting()和setFilter()。

QStringList QDir::entryList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]

返回这个目录中所有目录和文件的名称的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。

过滤器和排序的规定可以使用nameFilterfilterSpecsortSpec参数来指定。

如果这个目录是不可读的或者不存在,返回空的列表。。

也可以参考entryInfoList()、setNameFilter()、setSorting()和setFilter()。

实例:table/statistics/statistics.cpp。

QStringList QDir::entryList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回这个目录中所有目录和文件的名称的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。

过滤器和排序的规定可以使用filterSpecsortSpec参数来指定。

如果这个目录是不可读的或者不存在,返回空的列表。。

也可以参考entryInfoList()、setNameFilter()、setSorting()和setFilter()。

bool QDir::exists ( const QString & name, bool acceptAbsPath = TRUE ) [虚]

检查文件name的存在性。

如果acceptAbsPath为真,由分隔符“/”开始的路径将会使用绝对路径检查这个文件。如果acceptAbsPath为假,name开始的任何数量的分隔符将会被移除并且结果文件名将被检查。

如果文件存在,返回真,否则返回假。

也可以参考QFileInfo::exists()和QFile::exists()。

bool QDir::exists () const [虚]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

如果directory存在,返回真。(如果发现一个同名的文件,这个函数将返回假)。

也可以参考QFileInfo::exists()和QFile::exists()。

QString QDir::filePath ( const QString & fileName, bool acceptAbsPath = TRUE ) const [虚]

返回目录中一个文件的路径名称。检查这个文件是否真的存在于这个目录中。如果QDir是相对的,返回的路径名称也是相对的。fileName中多余的多重分隔符或者“.”和“..”目录将被移除(请参考cleanDirPath())。

如果acceptAbsPath为真,由分隔符“/”开始的fileName将会被不改变地立即返回。如果acceptAbsPath为假,绝对路径将被被加到fileName的前面并且结果字符串被返回。

也可以参考absFilePath()、isRelative()和canonicalPath()。

FilterSpec QDir::filter () const

返回由setFilter()设置的值。

QDir QDir::home () [静态]

返回主目录。

在Windows NT/2000下,这个函数通过连接HOMEDRIVEHOMEPATH环境变量来形成这个路径。

在Windows 9x和非Windows操作系统,HOME环境变量被使用。

如果这个环境变量没有被设置,rootDirPath()用来代替它。

也可以参考homeDirPath()。

QString QDir::homeDirPath () [静态]

返回用户的主目录的绝对路径。

也可以参考home()。

bool QDir::isReadable () const [虚]

如果目录是可读的并且我们可以通过名称打开文件,返回真。如果只有上述一个条件存在,这个函数返回假。 警告: 这个函数返回的假并不保证这个目录不可访问。

也可以参考QFileInfo::isReadable()。

实例:dirview/dirview.cpp和fileiconview/qfileiconview.cpp。

bool QDir::isRelative () const [虚]

如果目录路径是相对于当前路径的,返回真,并且如果路径是绝对的(例如在Unix下,一个路径如果没有以“/”开始就是相对的),返回假。

也可以参考convertToAbs()。

bool QDir::isRelativePath ( const QString & path ) [静态]

如果path是相对的,返回真,如果它是绝对的,返回假。

也可以参考isRelative()。

bool QDir::isRoot () const [虚]

如果目录是根目录,返回真,否则返回假。

注意:如果目录是一个连接到根目录的符号连接,这个函数返回假。如果你想测试这一点,你可以使用canonicalPath():

实例:

    QDir d( "/tmp/root_link" );
d = d.canonicalPath();
if ( d.isRoot() )
qWarning( "It IS a root link!" );

也可以参考root()和rootDirPath()。

bool QDir::match ( const QString & filter, const QString & fileName ) [静态]

如果fileName与通配符模式filter匹配,返回真。filter也可以包含由空格或者分号分割的多个模式。

(请参考QRegExp通配符匹配。)

也可以参考QRegExp::match()。

bool QDir::match ( const QStringList & filters, const QString & fileName ) [静态]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

如果fileName与列表filters中的通配符模式匹配,返回真。

(请参考QRegExp通配符匹配。)

也可以参考QRegExp::match()。

bool QDir::matchAllDirs () const

返回由setMatchAllDirs()设置的值。

也可以参考setMatchAllDirs()。

bool QDir::mkdir ( const QString & dirName, bool acceptAbsPath = TRUE ) const [虚]

创建一个目录。

如果acceptAbsPath为真,由分隔符“/”开始的dirName将会被不改变地立即返回。如果acceptAbsPath为假,dirName的开始的任意个分隔符将被移除。

如果成功,返回真,否则返回假。

也可以参考rmdir()。

QString QDir::nameFilter () const

返回由setNameFilter()设置的字符串。

bool QDir::operator!= ( const QDir & d ) const [虚]

如果目录d和这个目录是不同的路径或者不同的排序或过滤器设置,返回真,否则返回假。

实例:

    // 当前目录为“/usr/local”
QDir d1( "/usr/local/bin" );
QDir d2( "bin" );
if ( d1 != d2 ) qDebug( "They differ\n" ); // 这是被打印的

QDir & QDir::operator= ( const QDir & d )

完成一个QDir d的复制并且把它赋给这个QDir。

QDir & QDir::operator= ( const QString & path )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

设置这个目录的路径为给定的path

bool QDir::operator== ( const QDir & d ) const [虚]

如果目录d和这个目录有相同的路径、相同的排序和过滤器,返回真,否则返回假。

实例:

    // 当前目录为“/usr/local”
QDir d1( "/usr/local/bin" );
QDir d2( "bin" );
d2.convertToAbs();
if ( d1 == d2 ) qDebug( "They're the same\n" ); // 这是被打印的

QString QDir::operator[] ( int index ) const

返回在文件名列表的index位置的文件名。等于entryList().at(index)。

如果index超出范围或者entryList()函数失败,返回一个零字符串。

也可以参考count()和entryList()。

QString QDir::path () const [虚]

返回这个路径,这也许包含符号连接,但决不会包含多余的“.”、“..”或者多重分隔符。

返回的路径可能是相对的也可能是绝对的(请参考setPath())。

也可以参考setPath()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和convertSeparators()。

bool QDir::remove ( const QString & fileName, bool acceptAbsPath = TRUE ) [虚]

移除文件。

如果acceptAbsPath为真,由分隔符“/”开始的路径将会移除使用绝对路径的文件。如果acceptAbsPath为假,fileName开始的任意个分隔符将被移除并且结果文件将被移除。

如果文件移除成功,返回真,否则返回假。

bool QDir::rename ( const QString & oldName, const QString & newName, bool acceptAbsPaths = TRUE ) [虚]

重命名一个文件或目录。

如果acceptAbsPath为真,由分隔符“/”开始的路径将会重命名使用绝对路径的文件。如果acceptAbsPath为假,fileName开始的任意个分隔符将被移除并且结果文件将被重命名。

如果成功,返回真,否则返回假。

在绝大多数文件系统中,只有在oldName不存在或者newNameoldName不在同一个分区中,rename()才会失败。在Windows下,如果newName已经存在,rename()将会失败。无论如何,还有其它几个原因导致rename()失败。例如,例如在文件系统中如果newName指向一个打开的文件,rename()会失败。

实例:fileiconview/qfileiconview.cpp。

bool QDir::rmdir ( const QString & dirName, bool acceptAbsPath = TRUE ) const [虚]

移除一个目录。

如果acceptAbsPath为真,由分隔符“/”开始的路径将会移除使用绝对路径的目录。如果acceptAbsPath为假,dirName开始的任意个分隔符将被移除并且结果目录将被移除。

为了使rmdir()成功,这个目录必须为空。

如果成功,返回真,否则返回假。

也可以参考mkdir()。

QDir QDir::root () [静态]

返回根目录。

也可以参考rootDirPath()和drives()。

QString QDir::rootDirPath () [静态]

返回根目录的绝对路径。

在Unix操作系统这个返回“/”。在Windows文件系统这个返回“C:/”。

也可以参考root()和drives()。

char QDir::separator () [静态]

返回本地目录分隔符,在Unix下是“/”,在MS-DOS、Windows NT和OS/2下是“\”,在Mac OS下是“:”。

你不需要这个函数来构建文件路径。如果你一直使用“/”,Qt将会把你的路径转化为符合底层操作系统的路径的。

bool QDir::setCurrent ( const QString & path ) [静态]

设置你的应用程序的当前工作目录为path。如果目录被成功改变,返回真,否则返回假。

void QDir::setFilter ( int filterSpec ) [虚]

设置被entryList()和entryInfoList()使用的过滤器为filterSpec。过滤器被用来指定entryList()和entryInfoList()返回哪些文件。请参考QDir::FilterSpec。

也可以参考filter()和setNameFilter()。

void QDir::setMatchAllDirs ( bool enable ) [虚]

如果enable为真,那么所有的目录被包含(例如在entryList()中),并且nameFilter()仅适用于文件。如果enable为假,那么nameFilter()同时适用于文件和目录。

也可以参考matchAllDirs()。

void QDir::setNameFilter ( const QString & nameFilter ) [虚]

设置entryList()和entryInfoList()使用的名称过滤器为nameFilter

nameFilter是一个可以理解“*”和“?”的通配符过滤器。(请参考QRegExp通配符匹配。)你可以使用单个空格“ ”或者分号“;”来分割几个过滤器条目。

例如,如果你想entryList()和entryInfoList()列出所有以“.cpp”和“.h”结尾的文件,你需要使用dir.setNameFilter("*.cpp *.h")或dir.setNameFilter("*.cpp;*.h")。

也可以参考nameFilter()和setFilter()。

void QDir::setPath ( const QString & path ) [虚]

设置目录的路径为path。这个路径被清除多余的“.”、“..”和多重分隔符。不会完成检查来确保这个路径的目录是否存在。

路径可以是相对的也可以是绝对的。绝对路径是由目录分隔符“/”或驱动器标识开始的(除了Unix下)。相对路径是一个指定了相对于当前目录的目录名称和文件名称。一个绝对路径的实例是“/tmp/quartz”,一个相对路径的实例是“src/fatlib”。

也可以参考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()、isRelative()和convertToAbs()。

void QDir::setSorting ( int sortSpec ) [虚]

设置entryList()和entryInfoList()使用的排序顺序。

sortSpec是由QDir::SortSpec中的枚举变量的值或运算得到。

也可以参考sorting()和SortSpec。

SortSpec QDir::sorting () const

返回由setSorting()设置的值。

也可以参考setSorting()和SortSpec。

QT学习笔记8:QDir类及其用法总结的更多相关文章

  1. QT学习笔记9:QTableWidget的用法总结

    最近用QT中表格用的比较多,使用的是QTableWidget这个控件,总结一下QTableWidget的一些相关函数. 1.将表格变为禁止编辑: tableWidget->setEditTrig ...

  2. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  3. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  4. qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...

  5. QT学习之文件系统读写类

    #QT学习之文件系统读写类 QIODevice QFileDevice QBuffer QProcess 和 QProcessEnvironment QFileDevice QFile QFileIn ...

  6. Qt学习笔记-Widget布局管理

    Qt学习笔记4-Widget布局管理       以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,f ...

  7. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  8. [转]QDir类及其用法总结

    直接给出原文链接:QDir类及其用法总结

  9. QT学习笔记(一)——Helloworld

    QT学习笔记(一)--Helloworld 一.调试的基本方法: Log调试法 --在代码中加入一定的打印语句 --打印程序状态和关键变量的值 断点调试法: --在开发环境中的对应代码行加上断点 -- ...

随机推荐

  1. 深入理解java虚拟机---3垃圾回收机制GC

    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...

  2. 【13】享元模式(FlyWeight Pattern)

    一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,若重复地使用new创建这个对象的话,就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重.享元模式可以 ...

  3. hadoop的namenode启动失败

    1.jps发现namenode启动失败 每次开机都要重新格式化一下namenode才可以 其实问题出现自tmp文件上,因为每次开机就会被清空,所以现在我们配置一个tmp文件目录. 如果之前没有配置过, ...

  4. 悟空模式-java-建造者模式

    [此是锻炼神冰铁,磨琢成工光皎洁.老君自己动钤锤,荧惑亲身添炭屑.五方五帝用心机,六丁六甲费周折.造成九齿玉垂牙,铸就双环金坠叶.身妆六曜排五星,体按四时依八节.短长上下定乾坤,左右阴阳分日月.六爻神 ...

  5. Code Signal_练习题_differentSymbolsNaive

    Given a string, find the number of different characters in it. Example For s = "cabca", th ...

  6. 设计模式(17)--Mediator(中介者模式)行为型

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.模式定义: 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以 ...

  7. 【代码笔记】iOS-plist获得城市列表

    一,工程图. 二,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the ...

  8. 百度自动推送js

    <!DOCTYPE html> <!-- saved from url=(0014)about:internet --> <html> <head> & ...

  9. vs2015 停 在 update kb2999226 一直不动

    查找原因是因为装微软补丁,官网找到该补丁安装 Update for Windows 7 for x64-based Systems (KB2999226) https://www.microsoft. ...

  10. 记一次寻找appbug的问题

    公司规模 3000人以上 全国500强. 从总部刚交接过来的代码. 1.找不到代码.代码部分丢失.(由于没有交接,没有任何相关文档,花了一天确定代码丢失.从总部找到部分代码) 2.查找测试库,发现测试 ...