emsApplication/applications/emsConfigurer/main.cpp

106 lines
3.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifdef _DEBUG
#include <vld.h>
#endif
#include "mainwindow.h"
#include "qtsingleapplication.h"
#include <QApplication>
#include <QTranslator>
#include <QMessageBox>
#include <QScreen>
#include <QStyleFactory>
#include <QFile>
#include <QDebug>
#include <hv/hv.h>
#include <hv/hmain.h>
#include <hv/iniparser.h>
#include <hv/hloop.h>
#include <hv/hsocket.h>
#include <hv/hssl.h>
int main(int argc, char *argv[])
{
QString app_unique_name("emsConfigurer_application_name");
QtSingleApplication app(app_unique_name,argc, argv);
if(app.isRunning())
{
QMessageBox::information(nullptr, "EMS Configurer", "Another instance is already running.");
app.sendMessage("raise_window_noop", 1000); //1s后激活前个实例
return EXIT_SUCCESS;
}
main_ctx_init(argc, argv);
QString appDir = QCoreApplication::applicationDirPath();
std::string logFilePath = (appDir + QString::fromStdString("/emsConfigurer.log")).toStdString();
hlog_set_file(logFilePath.c_str());
hlogi("=========--- Welcome to the Earth ---=========");
hlogi("%s version: %s", argv[0], "1.1.0");
hlog_fsync();
//若是系统自带的QStyle风格则需要先创建为QStyleFactory::create("")然后设置qApp->setStyle()
//QStringList listStyle = QStyleFactory::keys();
//foreach(QString val, listStyle) //打印当前系统支持的系统风格,,且打印出来
//{
// qDebug()<<val<<" ";
//}
//当前系统支持的系统风格
//"windowsvista"
//"Windows"
//"Fusion"
//qApp->setStyle(QStyleFactory::create("Fusion"));
#if 1
//QFile f(":qdarkstyle/light/lightstyle.qss");
QFile f(":bingle/bingle/Ubuntu.qss");
//QFile f(":bingle/bingle/flat.qss");
if (!f.exists())
{
hloge("Unable to set stylesheet, file not found");
}
else
{
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
}
#endif
QTranslator translator;
const QStringList uiLanguages = QLocale::system().uiLanguages();
for (const QString &locale : uiLanguages)
{
const QString baseName = "emsConfigurer_" + QLocale(locale).name();
if (translator.load(":/i18n/" + baseName))
{
app.installTranslator(&translator);
break;
}
}
MainWindow w;
//隐藏(不显示)最大化最小化按钮
w.setWindowFlags(w.windowFlags()&~Qt::WindowMinMaxButtonsHint);
//w.setWindowFlags(w.windowFlags() | Qt::WindowStaysOnTopHint);
//w.setStyleSheet("border-radius: 4px;"); // 定制圆角
// ".QLabel{background: gray;}.QTextEdit{background: white;}");
//获取窗口尺寸并居中
QScreen *scr = app.primaryScreen();
int scr_w = scr->size().width();
int scr_h = scr->size().height();
w.move((scr_w - w.width()) / 2, (scr_h - w.height()) / 2);
w.show();
int ret = app.exec();
hlogi("=========--- I'll be back! ---=========");
return ret;
}