目录
背景
有的时候要调用三方的库,能够比较简单的实现一些酷炫的效果。这里特别是前端的酷炫效果!
如果在Qt中,某个地方,能小范围使用前端Qt的效果,辣么,将会是一个多么有意思的事情!
这里提一下QFileInfo的小技巧,QWebView如何巧妙的加载它!
演示及代码
程序运行截图如下:
输出结果如下:
程序结构如下:
源码如下:
QFileInfoDemo.pro
QT += core gui webkitwidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = QFileInfoDemo
TEMPLATE = app
SOURCES += main.cpp
HEADERS +=
FORMS +=
RESOURCES += \
resources.qrc
main.cpp
#include <QApplication>
#include <QDebug>
#include <QFileInfo>
#include <QString>
#include <QDir>
#include <QFile>
#include <QWebView>
#include <QUrl>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDir dir(qApp->applicationDirPath() + "/web interface");
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dir.setSorting(QDir::Time);
QFileInfoList list = dir.entryInfoList();
foreach(QFileInfo str, list){
qDebug() << str.absoluteFilePath();
}
QWebView view;
view.load(QUrl::fromLocalFile(list[0].absoluteFilePath()));
view.show();
qDebug() << QString::fromLocal8Bit("-------------------华丽的分割线-------------------");
//如果是内部资源文件
QFileInfo innerFile("qrc:/rec/hehe.html");
qDebug() << innerFile.absoluteFilePath();
qDebug() << innerFile.filePath();
QWebView view2;
view2.load(QUrl(innerFile.filePath()));
view2.show();
return a.exec();
}
hehe.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<img src="https://picsum.photos/800/600/?random" alt="" class="ui rounded image">
</body>
</html>
总结
从上面可以知道,load中有2种方式,一种是提供url,一种是提供文件路径,提供文件路径要使用QFile::fromLocalFile,这里可以使用QDir中的entryInfoList获取所有文件;