Ai
81 Star 380 Fork 168

LibQQt应用程序开发组织/LibQQt

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
qqtqssmanager.cpp 2.33 KB
一键复制 编辑 原始数据 按行查看 历史
T.D.R. 提交于 2019-06-09 00:32 +08:00 . update qqtframe
#include "qqtqssmanager.h"
#include "qqtcore.h"
#include <QFile>
#include <QDir>
QQtQSSManager::QQtQSSManager ( QObject* parent ) : QObject ( parent )
{
}
QQtQSSManager::~QQtQSSManager()
{
}
QList<QString> QQtQSSManager::styleList()
{
while ( mStyleList.count() > 0 )
mStyleList.removeAt ( 0 );
QDir d ( conf_skin ( "." ) );
foreach ( QFileInfo mfi, d.entryInfoList() )
{
if ( mfi.isFile() )
{
if ( mfi.suffix() != "qss" )
continue;
//不包括default.qss
if ( mfi.baseName() == "default" )
continue;
if ( mfi.baseName() == "current" )
continue;
QString styleName = mfi.completeBaseName();
mStyleList.push_back ( styleName );
}
}
//pline() << d.absolutePath();
//pline() << mStyleList;
return mStyleList;
}
void QQtQSSManager::setCurrentStyle ( QString styleName )
{
//pline() << "set style";
//pline() << conf_skin ( "default.qss" );
//pline() << QFile ( conf_skin ( "default.qss" ) ).exists() << QDir ( conf_skin ( "default.qss" ) ).exists();
//pline() << conf_skin ( QString ( "%1.qss" ).arg ( styleName ) );
//pline() << QFile ( conf_skin ( QString ( "%1.qss" ).arg ( styleName ) ) ).exists() << QDir ( conf_skin ( QString ( "%1.qss" ).arg ( styleName ) ) ).exists();
if ( !QFile ( conf_skin ( "default.qss" ) ).exists() )
return;
if ( !QFile ( conf_skin ( QString ( "%1.qss" ).arg ( styleName ) ) ).exists() )
return;
//pline() << "set style 2" << styleName;
#ifdef __EMBEDDED_LINUX__
QString cmd = QString ( "touch %1" ).arg ( conf_skin ( "current.qss" ) );
system ( cmd.toLocal8Bit().constData() );
#endif
QByteArray bytes;
QFile f1 ( conf_skin ( "default.qss" ) );
f1.open ( QFile::ReadOnly );
bytes = f1.readAll();
f1.close();
QFile f2 ( conf_skin ( QString ( "%1.qss" ).arg ( styleName ) ) );
f2.open ( QFile::ReadOnly );
bytes += f2.readAll();
f2.close();
QFile file ( conf_skin ( "current.qss" ) );
file.open ( QFile::Truncate | QFile::WriteOnly );
file.write ( bytes );
file.close();
//pline() << conf_skin ( "current.qss" );
qqtApp->setQSSStyle ( conf_skin ( "current.qss" ) );
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C/C++
1
https://gitee.com/drabel/LibQQt.git
git@gitee.com:drabel/LibQQt.git
drabel
LibQQt
LibQQt
master

搜索帮助