1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00

support qqtapplication class

This commit is contained in:
tianduanrui 2017-09-19 09:52:31 +08:00
parent 91e93000b1
commit 2dcde03105
4 changed files with 181 additions and 3 deletions

View File

@ -1,6 +1,7 @@
TEMPLATE = subdirs
SUBDIRS += \
examples/qqtframe \
src/qqt.pro \
# examples/qqtframe \
# examples/animationframe \
# examples/cmdwidget \
# examples/qqtliveplayer \

View File

@ -81,7 +81,8 @@ INCLUDEPATH += $$PWD
HEADERS += $$PWD/qqt.h \
$$PWD/qqtversion.h \
$$PWD/qqt-local.h \
$$PWD/qqt-qt.h
$$PWD/qqt-qt.h \
$$PWD/widgets/qqtapplication.h
#serialport
@ -107,7 +108,8 @@ INCLUDEPATH += $$PWD/core
SOURCES += \
$$PWD/core/qqtcore.cpp \
$$PWD/core/qqtanimation.cpp \
$$PWD/core/qqtobjectfactory.cpp
$$PWD/core/qqtobjectfactory.cpp \
$$PWD/widgets/qqtapplication.cpp
HEADERS += \
$$PWD/core/qqtcore.h \
$$PWD/core/qqtanimation.h \

View File

@ -0,0 +1,137 @@
#include "qqtapplication.h"
#include <QFile>
#include "qqtpluginwatcher.h"
#include <qqtwidgets.h>
#include <qqtmsgbox.h>
#include <QTextCodec>
#include <QSettings>
#include <qqtversion.h>
#include <qqtframe.h>
#include <qqtcore.h>
#include <QTranslator>
#include <QFontDatabase>
QQtApplication::QQtApplication(int &argc, char **argv
#ifndef Q_QDOC
, int flags
#endif
) :
QApplication(argc, argv
#ifndef Q_QDOC
, flags
#endif
)
{
#ifndef __QT5__
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
#endif
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QCoreApplication::setOrganizationName(VER_COMPANYNAME_STR);
QCoreApplication::setOrganizationDomain(VER_COMPANYDOMAIN_STR); // 专为Mac OS X 准备的
QCoreApplication::setApplicationName(VER_PRODUCTNAME_STR);
QSettings::setPath(QSettings::NativeFormat, QSettings::UserScope, CONFIG_PATH);
QSettings::setPath(QSettings::NativeFormat, QSettings::SystemScope, CONFIG_PATH);
#ifdef __MIPS_LINUX__
system("rm -f /tmp/LCK..ttyS*");
#endif
pline() << qApp->applicationDirPath();
language = new QTranslator(this);
setLanguage();
qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
/*
*
*/
QApplication::setGraphicsSystem("raster");
#endif
#ifdef __MIPS_LINUX__
//QApplication::setOverrideCursor(Qt::ArrowCursor);
QWSServer::setCursorVisible(false);
#endif
#ifdef __MIPS_LINUX__
QQTInput::Instance()->Init("min", "control", "QQT", 14, 14);
#endif
QObject::connect(QQTPluginWatcher::Instance(), SIGNAL(storageChanged(int)),
this, SLOT(slotUPanAutoRun(int)));
}
void QQtApplication::setQSSStyle(QString qssfile)
{
/*
* Could not parse application stylesheet
* UI颜色和效果
*
* QQT效果
*/
QFile styleFile(qssfile);
styleFile.open(QIODevice::ReadOnly);
QString styleString(styleFile.readAll());;
styleFile.close();
setStyleSheet(styleString);
/*
*
*/
//setPalette(QPalette(QColor("#F0F0F0")));
}
void QQtApplication::setUPanAutorun(bool run)
{
bUPanAutoRun = run;
}
void QQtApplication::slotUPanAutoRun(int status)
{
if(!bUPanAutoRun)
return;
if(QQTPluginWatcher::E_ADD == status)
{
QString mP = QQTPluginWatcher::Instance()->upanMountPath();
QString app = QString("%1/autorun.sh").arg(mP);
QFile file(app);
if(file.exists())
{
if(QDialog::Rejected == QQTMsgBox::question(0, tr("Some app want to run in u disk!accepted?")))
{
return;
}
}
QProcess* p = new QProcess(this);
p->setWorkingDirectory(mP);
p->start(app);
}
}
void QQtApplication::setTextFont(QString fontfile, int fontsize)
{
QFontDatabase db;
int fontID = db.addApplicationFont(fontfile);
QString ziti = db.applicationFontFamilies ( fontID ).at(0);
pline() << ziti;
QFont font(ziti, fontsize);
QApplication::setFont(font);
}
void QQtApplication::setLanguage(QString qmfile)
{
language->load(qmfile);
pline() << "currentLanguage" << qmfile;
installTranslator(language);
}

View File

@ -0,0 +1,38 @@
#ifndef QQTAPPLICATION_H
#define QQTAPPLICATION_H
#include <QApplication>
#include <qqt-local.h>
class QQTSHARED_EXPORT QQtApplication : public QApplication
{
Q_OBJECT
public:
public:
explicit QQtApplication(int &argc, char **argv
#ifndef Q_QDOC
, int = ApplicationFlags
#endif
);
void setLanguage(QString qmfile = "./lang/zh_CN.qm");
//palette
void setTextFont(QString fontfile = "/usr/lib/fonts/heiti.ttf", int fontsize = 11);
void setQSSStyle(QString qssfile = "./skin/default.qss");
void setUPanAutorun(bool run = false);
virtual int initInstance() {}
virtual int unInitInstance() {}
signals:
public slots:
void slotUPanAutoRun(int status);
private:
bool bUPanAutoRun;
private:
QTranslator* language;
};
#endif // QQTAPPLICATION_H