Qt5,象征性链接到一个文件夹
这个问题,哪个(可能)一个过时的答案,因为我无法在QT5中工作. 我希望为类似于QFile::link()的结果创建指向文件夹的符号链接.鉴于QDir没有等效的函数,QProcess(或外部库)似乎是出路了.如何在QT5中进行管理? 提前非常感谢. 解决方案 我发现它不能在QT中完成,因此我最终使用了Win32 API.特别是CreateSymbolicLink() 其他解决方案 Windows上有快捷方式和硬链接.我认为mklink是指硬链接. 它适用于快捷方式: #include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile dir("D:\\source-dir"); bool ok = dir.link("D:\
10 2023-12-06
编程技术问答社区
如何从QFile或QSaveFile中获得一个windows HANDLE,用于ReOpenFile?
给定QFileDevice实例(a QFile或QSaveFile) - 如何获得文件的本机Windows HANDLE?并且可以与ReOpenFile? 一起使用此处理 解决方案 > _open_osfhandle .您需要使用struct FdHandle { int fd = -1; HANDLE handle = INVALID_HANDLE_VALUE; operator HANDLE() const { return handle; } bool isFdValid() const { return fd != -1; } bool isHandleValid() const { return handle != INVALID_HANDLE_VALUE; } }; FdHandle windowsHandleOf(QFileDevice* dev) { auto fd = dev->handle(); return {fd, (HANDLE)_get_osfhandl
46 2023-12-06
编程技术问答社区
Qt-如何计算.txt文件的行数
我想计算文本文件中的行数,因此我可以将其转换为二维数组 文本文件应该像这个 20 30 78 1000 .... .... 和使用qfile访问文件的源代码 QFile file("c:/Qt/in.txt"); file.open(QIODevice::ReadOnly); //| QIODevice::Text) y = linecount/5; QString line[y][5]; QTextStream in(&file); for (int k=0;k
132 2023-10-19
编程技术问答社区
QFile.write( myStruct )-如何?
我是从QT开始的,现在遇到了一个问题据说现在已经很长时间了.我确定这只是我在C ++中看不到的东西.无论如何,请查看以下简单代码,并指出我在做什么错: typedef struct FILEHEADER { char udfSignature[8]; char fileName[64]; long fileVersion; UNIXTIME fileCreation; UNIXTIME lastRebuild; FILEPOINTER descriptor; } fileheader; QFile f("nanga.dat"); if(f.open(QIODevice::ReadWrite)); f.write(fileheader); qt 5.2.0向我拖了以下错误消息: C:\sw\udb\udb\main.h:113: error: no matching function for call to 'QF
26 2023-08-28
编程技术问答社区
QFile 打开文件以便写入失败
我正在尝试打开文件并将一些文本数据写入其中. QFile out(":/test.txt"); if (!out.open(QIODevice::ReadWrite)) { QMessageBox msgBox; msgBox.setText(out.errorString()); msgBox.exec(); return; } ,但由于"未知错误"而失败. (QT 4.6,WNIDOWS XP SP3) 解决方案 ":/test.txt"是资源文件嵌入到可执行文件中,您无法写入它.将文件名更改为" c:/test.txt". 其他解决方案 您需要更改Qfile构造函数参数 QFile out(":/test.txt"); 到一个可以是 的正确路径 QFile out("./test.txt"); 或 QFile out("C:/test.txt");
20 2023-07-25
编程技术问答社区
如何在Qt中移动一个文件到另一个现有的目录中
我是QT的初学者,我项目的一部分是将现有文件移至另一个现有目录?有人可以给我一个具体的例子吗?我不确定是否应该使用qfile :: rename().我尝试像这样写 QDir::rename("/home/joshua/test.txt","/home/joshua/test/test_c.txt"); 但是,错误是无法调用成员函数'bool qdir :: Rename(const qString&,const qString&)'没有对象 qdir :: Rename("/home/joshua/test.txt","/home/joshua/joshua/test/test_c.txt"); ^ 对不起,所有人错了,我问了一个不清楚的问题,我很抱歉浪费您的时间,我是一个初学者,在我问这个问题之前,我真的没有注意到这个问题以前被问到,因为我的水平很低.因为我太幼稚了,所以我再也不能问问题了,所以请原谅我问这个问题,我太压力了,因为我在一家公司实习,我对我的项目很难浪
22 2023-07-17
编程技术问答社区
在Qt中解析csv文件
是任何熟悉如何通过CSV文件解析并将其放入字符串列表中的人.现在,我将整个CSV文件放入字符串列表中.我试图弄清楚是否有一种仅获得第一列的方法. #include "searchwindow.h" #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget *widget = new QWidget(); QHBoxLayout *
26 2023-07-17
编程技术问答社区
如何在Qt 5中写入和读出QResource文件?
这很奇怪,我通过添加现有文件添加所需的文件... ,文件在那里.我运行qmake(" build-> run qmake")以使文件可用. 第一个问题: 我无法从输出终端中写入任何内容! ,但是当我手动写入文件时,输出终端每次运行时都会显示更改它.第二期:它仍然说 Qiodevice :: read:设备不打开 ! 这是我的代码: #include #include #include #include #include #include void wFile(QString Filename) { QFile nFile(Filename); QTextStream str(&nFile); qDebug()
38 2023-07-17
编程技术问答社区
QFile::QFile函数 -> 错误。QFile :: QFile (const QFile &) '是私有的
在我的一种方法中,我需要一个qfile对象: void GUIsubclassKuehniGUI::LoadDirectory() { QString loadedDirectory = QFileDialog::getExistingDirectory(this, "/home",tr("Create Directory"), QFileDialog::DontResolveSymlinks); ui.PathDirectory -> setText(loadedDirectory); QFileInfo GeoDat1 = loadedDirectory + "/1_geo.m4";
154 2023-07-17
编程技术问答社区
QSocketNotifier和QFile::readAll()
目前在SBC(Olimex A20)的GPIO上工作,我对QSocketNotifier有问题.在我的GPIO上,我正在使用具有中断能力的别针(对于那些想了解更多信息的人: 那是我的中断课程: OLinuXinoGPIOEdge::OLinuXinoGPIOEdge(int num) : m_gpioNumber(num), m_value(false), m_direction(IN) { this->exportGPIO(); // equivalent to 'echo num > export' this->setDirection(IN); // for security m_fileValue.setFileName("/sys/class/gpio/gpio20_pi11"); // the path of the pin this->setEdge(BOTH); // edge's detection (both/falli
34 2023-07-17
编程技术问答社区
在不同的线程中从一个Q文件中读取数据
从QFile中的最佳读取方式是什么,该方式与我想从我想读取的线程不同的线程中是什么? 考虑: class AFile : public QObject { Q_OBJECT public: AFile(const QString &name, QObject *parent = Q_NULLPTR) : QObject(parent), m_File(name) { m_File.open(QIODevice::ReadWrite); } public slots: void write(const QByteArray &data, qint64 pos) { m_File.seek(pos); m_File.write(data); } private: mutable QFile m_File; }; class AData : public QObject { Q_OBJECT public: using QObj
8 2023-07-17
编程技术问答社区
QT-Q文件复制操作极其缓慢
使用 qt(5.6.1) ,我正在开发一个需要将大量文件从一个文件夹复制到另一个文件夹的应用程序 为此,我一直在使用QFile::copy()方法.除了一件事外,这很好:极度慢.使用Windows Explorer所花费的时间超过两倍. 想知道为什么是,我挖掘了QT源代码,然后在qfile.cpp中找到了它,看起来很重要: char block[4096]; qint64 totalRead = 0; while(!atEnd()) { qint64 in = read(block, sizeof(block)); if (in setError(QFile::CopyError, tr("Failure to write block"));
108 2023-07-17
编程技术问答社区
QFile:如何有效地从k,到k+L中只读取字节?
我可以从qfile从k+l读取从qfile读取第一个整个文件to qbyTearray 的字节 if (!file.open(QIODevice::ReadOnly)) //... QByteArray blob = file.readAll(); QByteArray bytes = blob.mid( k, L); 如何有效地读取从k到k+l的字节? if (!file.open(QIODevice::ReadOnly)) //... QByteArray bytes = bytesFromFile( file, k, L); 解决方案 使用Seek方法来到达您要开始阅读的文件中的位置. 然后使用读取方法从那时开始读取任意数量的字节. 即. if (!file.open(QIODevice::ReadOnly)){ file.seek(k); QByteArray bytes = file.rea
18 2023-07-17
编程技术问答社区
如何序列化一个QMap?
我正在尝试使用此代码来学习如何在窗口应用程序中序列化QMAP对象: #include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include void write () { QString filename = "Z:/snippets.txt"; QFile myFile (filename); if (!myFile.open(QIODevice::WriteOnly)) { qDebug() map; map.insert("one","this is 1"
44 2023-07-16
编程技术问答社区
os.walk在PyQt中的类似功能
在我继续实现递归dir/文件搜索之前,我想知道一些任务,我想知道qt/pyqt是否具有os.walk的类似物. 主应用程序是pyqt4中的GUI应用,以及QString s和路径对象(文件,目录)中的所有文本字段使用QFile,QDir,QDir,QFileinfo进行操作. 作为模拟,我的意思是快速且方便的递归fs-Tree遍历工具. 我应该使用os.walk还是更快,更有益的东西? ps.也许 this 可以帮助我,但我不确定这是否比os.walk更有效. . 解决方案 我应该使用OS.Walk或更快,更有信息的内容吗? 没有,如果可以的话,我建议在Python中使用os.walk.它和获得的一样好. 这不仅是因为QT没有这样的便利方法,而且即使您基于QDir编写自己的机制,您也可以访问所有三个变量,而无需像os.walk那样手工进行. 如果您拼命使用QT,那么您可能会在下面使用以下遍历功能. main.cpp #inc
28 2023-07-16
编程技术问答社区
Qt不能不能创建/写入C:\\C
我正在编写一个QT程序(最初是Windows 7的4.7),该程序需要写入安装的目录(C:\ Program Files ...).当我尝试写入"受保护"的位置时,没有创建文件(程序文件,c:\ etc).但是,Qfile没有给我任何错误代码(error()返回0,这意味着它工作正常). 这是我正在使用的代码snippit.我正在关闭该文件的稍后. qapplication a(argc,argv); // Setting plugin paths. QStringList paths = QCoreApplication::libraryPaths(); paths.append(QCoreApplication::applicationDirPath()); QCoreApplication::setLibraryPaths(paths); // Debug file. QString path = QCoreApplication::applicationD
36 2023-07-16
编程技术问答社区
使用QFile::copy()的进度条?
我正在制作一个程序,该程序在QT中复制文件.我想知道如何与bool QFile::copy(const QString & fileName, const QString & newName)一起使用QProgressBar. copy函数是否可以使用?可以暂停复制的过程吗? 解决方案 您无法使用static Qfile :: copy()方法进行此操作. 正如Maciej所述,在您需要写自己的课之前.它应该使用两个QFILE对象,一个用于读取一个用于写作的对象.将数据转移到部分(例如整个文件大小的1%)中,并在每个部分后发出一个进度信号.您可以将此信号连接到进度对话框. 如果您需要在后台工作,则应使用Qthread实施. 首先尝试确定您是否需要一堂课,该类使复制工作起作用(不阻止GUI)或同步(阻止GUI).后者更易于编程,但大多数情况下不是预期的(例如,如果GUI被阻止,则无法取消或暂停通过按钮单击副本操作). 您可以在这里查看相当大的QT 4类: h
40 2023-07-16
编程技术问答社区
将QFile转换为FILE*。
是否有另一种方法可以交流qfile提交?与此不同: QFile myFile("goforward.raw"); int FileDescriptor = myFile.handle(); FILE* fh = fdopen(FileDescriptor, "rb"); 解决方案 我认为您已经知道您在Qfile中具有各种open,read等.也就是说,如果未打开文件,则handle方法将返回错误. QFile myFile("goforward.raw"); myFile.open(QIODevice::ReadOnly); int fileHandle = myFile.handle(); 之后,您可以重新打开它: FILE* fh = fdopen(fileHandle, "rb"); 其他解决方案 我们的应用程序遇到了非常奇怪的问题,最后将其追溯到Qfile/fdopen问题: void foo(QString filename) {
54 2023-07-16
编程技术问答社区
如何在Qt中创建一个具有完整路径的新文件?
我是QT初学者,只是遇到了问题.我正在寻找一个文件SomePath/NewDirectoryA/NewFile.kml(NewFile.kml将是NewDirectoryA中的唯一文件,拥有此目录只是为了维护项目中的语义). 如果存在SomePath/NewDirectoryA/NewFile.kml,则我将在代码中使用它,如果它不存在,则必须创建它.如果此文件不存在,则此目录在SomePath中也不存在.因此,如果我只需要创建一个文件,就可以使用qfile并以readwrite或写入模式打开它. 但是问题是我必须使用目录本身创建文件. 我尝试使用QFile使用文件名SomePath/NewDirectoryA/NewFile.kml,但没有起作用. 请建议我在给定位置(某些路径)的新目录(newDirectora)中创建一个新文件(newfile.kml)的方式. 解决方案 bool qfile :: Open (OpenMode)模式)[虚拟]
20 2023-07-16
编程技术问答社区
Qt创建文件夹之间的链接
我必须构建一个小型对话框,该对话框创建了一个符号链接. Windows I将使用mklink/d命令. 是否有可能在QT中创建此类链接?我只看到qfile在文件之间创建链接,并且他们需要以.lnk的结尾( 有什么建议? 最好的问候, 理查德 解决方案 是否有可能在qt? 中创建此类链接 是的,但仅在Unix上. 不幸的是,windows上的Qfile不支持这一点,甚至不受QDIR的支持.我认为,这将是一个有用的功能,可以在 qt bug tracker . 解决方法是写下这样的东西: #ifdef Q_OS_UNIX QFile::link(sourceDir.absolutePath(), destDir.absolutePath()); #elif Q_OS_WIN QProcess process; process.start("mklink /D"); // Wait for it to st
10 2023-07-16
编程技术问答社区