From cc65f64be2a05747db33bd0ba6b2db5c17eb348c Mon Sep 17 00:00:00 2001 From: Krad Date: Mon, 25 Oct 2021 15:00:09 +0800 Subject: [PATCH] Apply new ttf for linux font. --- src/InputObject.cpp | 30 +++--- src/loginwindow.cpp | 167 ++++++++++++++--------------- src/main.cpp | 74 ++++++++----- src/mainwindow.cpp | 253 ++++++++++++++++++++++---------------------- 4 files changed, 275 insertions(+), 249 deletions(-) diff --git a/src/InputObject.cpp b/src/InputObject.cpp index 754bef1..a35eaeb 100644 --- a/src/InputObject.cpp +++ b/src/InputObject.cpp @@ -11,7 +11,7 @@ #include #include -InputObject::InputObject(QWidget *parent) : +InputObject::InputObject(QWidget* parent) : QWidget(parent), ui(new Ui::InputObject) { @@ -40,7 +40,7 @@ void InputObject::initUi() "QLineEdit,QDateEdit{background-color: rgba(0,0,0,0.5);\ min-height:100px;max-height:100px; min-width:500px;max-width:500px;\ border: 2px solid #ef9cba; border-radius:20px;\ - font-family:Microsoft YaHei; color:white;margin:0;font-size:36px;}" + color:white;margin:0;font-size:36px;}" "QTextEdit{background-color: rgba(0,0,0,0.5);\ min-height:300px;max-height:300px; min-width:700px;max-width:700px;\ border: 2px solid #ef9cba; border-radius:20px;\ @@ -55,7 +55,7 @@ void InputObject::initUi() "QLineEdit,QDateEdit,QTextEdit{\ background:qlineargradient(x1:0,y1:0,x2:1,y2:1,stop: 0.0 silver, stop: 1.0 grey);\ border: 1px solid #1e1b18; border-radius:20px;\ - font-family:Microsoft YaHei; color:black;margin:0;font-size:36px;}" + color:black;margin:0;font-size:36px;}" "QLineEdit,QDateEdit{min-height:100px; max-height:100px; min-width:500px; max-width:500px;}" "QTextEdit{min-height:300px;max-height:300px; min-width:700px;max-width:700px;}" @@ -79,20 +79,20 @@ void InputObject::initUi() this->HidePanel(); this->hide(); - }); + }); } -bool InputObject::eventFilter(QObject *obj, QEvent *event) +bool InputObject::eventFilter(QObject* obj, QEvent* event) { //mouse button release means setfocus is useless if (event->type() == QEvent::MouseButtonRelease) { //qDebug() << obj << event->type(); - + if (obj->objectName() == QString("qt_spinbox_lineedit")) { - QDateEdit *_date = qobject_cast(obj->parent()); + QDateEdit* _date = qobject_cast(obj->parent()); if (_date == ui->dateEdit)return true; if (_date->isEnabled()) { @@ -102,7 +102,7 @@ bool InputObject::eventFilter(QObject *obj, QEvent *event) } if (obj->objectName() == QString("qt_scrollarea_viewport")) { - QTextEdit *_text= qobject_cast(obj->parent()); + QTextEdit* _text = qobject_cast(obj->parent()); if (!_text) return false; if (_text == ui->textEdit) return true; // if (_text->isEnabled()) @@ -113,7 +113,7 @@ bool InputObject::eventFilter(QObject *obj, QEvent *event) } if (obj->inherits("QLineEdit")) { - QLineEdit *tbx = qobject_cast(obj); + QLineEdit* tbx = qobject_cast(obj); //you have to tell whether it is coming from qdateedit!!! if (ui->lineEdit != tbx && tbx->isEnabled()) { @@ -126,7 +126,7 @@ bool InputObject::eventFilter(QObject *obj, QEvent *event) } } - + @@ -167,10 +167,10 @@ void InputObject::ShowPanel() { ui->lineEdit->setEchoMode(curLine->echoMode()); ui->lineEdit->setInputMethodHints(Qt::InputMethodHint::ImhNoAutoUppercase); ui->lineEdit->setFocus(); - while (QGuiApplication::focusObject() != ui->lineEdit) - { - qApp->processEvents(); - } + while (QGuiApplication::focusObject() != ui->lineEdit) + { + qApp->processEvents(); + } QEvent event(QEvent::RequestSoftwareInputPanel); QApplication::sendEvent(ui->lineEdit, &event); @@ -178,7 +178,7 @@ void InputObject::ShowPanel() { } if (curDateEdit) { - + ui->dateEdit->setDateTime(curDateEdit->dateTime()); ui->dateEdit->setFocus(); while (QGuiApplication::focusObject() != ui->dateEdit) diff --git a/src/loginwindow.cpp b/src/loginwindow.cpp index 1aec43c..b443b2f 100644 --- a/src/loginwindow.cpp +++ b/src/loginwindow.cpp @@ -14,17 +14,17 @@ #define splitFlag QString("-") LoginWindow::LoginWindow(QWidget* parent) - : QDialog(parent) + : QDialog(parent) , m_pLoginButton(nullptr) , m_pVMainLayout(nullptr) , m_pUserCodeFrame(nullptr) , m_pUserCodeLayout(nullptr) - , m_pUserCodeEdit(nullptr) + , m_pUserCodeEdit(nullptr) , m_pPassWordEdit(nullptr) { initUi(); init(); - setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint); + setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint); //Dialog::Instance()->InitForm(); } @@ -36,68 +36,68 @@ LoginWindow::~LoginWindow() void LoginWindow::initUi() { - QString style = "*{background-color:#3c3c3c; font-family:Microsoft YaHei; color:white;margin:0;font-size:16px;}" - "QLabel#title{font-Size:98px;color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," - "stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);}" - "QLabel#warn{color:#930000;background:transparent;font-size:20px;}" - "QFrame#login_frame_username{min-width:700px;max-width:700px;max-height:500px;min-height:500px;" - "border:1px solid #0078d8;border-radius:20px;" - "background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n" - " stop: 0.0 darkgray, stop: 0.5 gray, stop: 1.0 darkgray);" - "}" - "QLineEdit{min-height:100px;max-height:100px; border:1px solid silver;border-radius:10px;font-size:26px;}" - "QLineEdit:enabled{background-color: #515151}" - "QComboBox{text-align:center;min-height:100px;max-height:100px; " - "border:1px solid silver;border-radius:10px;padding:3px}" - "QComboBox:enabled{background-color: #515151}" - "QComboBox::drop-down{width:80px;border-radius:10px}" - "QComboBox QAbstractItemView{min-width:120px;}" - "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}" - "QToolButton{min-height:100px;max-height:100px;border:1px solid #505050;" - "border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}" - "QToolButton:hover{background:#505050;}"; + QString style = "*{background-color:#3c3c3c; color:white;margin:0;font-size:16px;}" + "QLabel#title{font-Size:98px;color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," + "stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);}" + "QLabel#warn{color:#930000;background:transparent;font-size:20px;}" + "QFrame#login_frame_username{min-width:700px;max-width:700px;max-height:500px;min-height:500px;" + "border:1px solid #0078d8;border-radius:20px;" + "background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n" + " stop: 0.0 darkgray, stop: 0.5 gray, stop: 1.0 darkgray);" + "}" + "QLineEdit{min-height:100px;max-height:100px; border:1px solid silver;border-radius:10px;font-size:26px;}" + "QLineEdit:enabled{background-color: #515151}" + "QComboBox{text-align:center;min-height:100px;max-height:100px; " + "border:1px solid silver;border-radius:10px;padding:3px}" + "QComboBox:enabled{background-color: #515151}" + "QComboBox::drop-down{width:80px;border-radius:10px}" + "QComboBox QAbstractItemView{min-width:120px;}" + "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}" + "QToolButton{min-height:100px;max-height:100px;border:1px solid #505050;" + "border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}" + "QToolButton:hover{background:#505050;}"; setStyleSheet(style); m_pVMainLayout = new QVBoxLayout(this); m_pVMainLayout->setContentsMargins(0, 0, 0, 0); m_pVMainLayout->setSpacing(0); - m_pVMainLayout->addSpacerItem(new QSpacerItem(20,20,QSizePolicy::Minimum,QSizePolicy::Expanding)); + m_pVMainLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); - QLabel* title = new QLabel(this); - title->setObjectName("title"); - title->setText("U S C T"); - m_pVMainLayout->addWidget(title,0,Qt::AlignCenter); + QLabel* title = new QLabel(this); + title->setObjectName("title"); + title->setText("U S C T"); + m_pVMainLayout->addWidget(title, 0, Qt::AlignCenter); m_pUserCodeFrame = new QFrame(this); m_pUserCodeFrame->setObjectName("login_frame_username"); m_pUserCodeLayout = new QVBoxLayout(m_pUserCodeFrame); - m_pUserCodeLayout->setSpacing(30); - m_pUserCodeLayout->setContentsMargins(20,60,20,20); - warn = new QLabel(this); - warn->setObjectName("warn"); - warn->setText("Login failed, username or password error!"); - warn->setVisible(false); - m_pUserCodeLayout->addWidget(warn,0,Qt::AlignCenter); - m_pUserCodeEdit = new QLineEdit(m_pUserCodeFrame); + m_pUserCodeLayout->setSpacing(30); + m_pUserCodeLayout->setContentsMargins(20, 60, 20, 20); + warn = new QLabel(this); + warn->setObjectName("warn"); + warn->setText("Login failed, username or password error!"); + warn->setVisible(false); + m_pUserCodeLayout->addWidget(warn, 0, Qt::AlignCenter); + m_pUserCodeEdit = new QLineEdit(m_pUserCodeFrame); m_pUserCodeEdit->setObjectName("combobox_UserName"); //m_pUserCodeEdit->setLineEdit(new QLineEdit(m_pUserCodeFrame)); m_pUserCodeEdit->setPlaceholderText(tr("Username")); m_pUserCodeLayout->addWidget(m_pUserCodeEdit); - m_pVMainLayout->addWidget(m_pUserCodeFrame,0,Qt::AlignCenter); + m_pVMainLayout->addWidget(m_pUserCodeFrame, 0, Qt::AlignCenter); m_pPassWordEdit = new QLineEdit(this); m_pPassWordEdit->setObjectName("edt_Password"); m_pPassWordEdit->setEchoMode(QLineEdit::Password); m_pPassWordEdit->setPlaceholderText(tr("Password")); - m_pUserCodeLayout->addWidget(m_pPassWordEdit); - - ADD_TOOL_BTN_TO_LAYOUT(login,":/icons/login.png",m_pUserCodeLayout); - m_pUserCodeLayout->removeWidget(btnlogin); - m_pUserCodeLayout->addWidget(btnlogin,0,Qt::AlignCenter); + m_pUserCodeLayout->addWidget(m_pPassWordEdit); + + ADD_TOOL_BTN_TO_LAYOUT(login, ":/icons/login.png", m_pUserCodeLayout); + m_pUserCodeLayout->removeWidget(btnlogin); + m_pUserCodeLayout->addWidget(btnlogin, 0, Qt::AlignCenter); m_pLoginButton = btnlogin; -// m_pUserCodeLayout->addWidget(m_pLoginButton, 0, Qt::AlignCenter); - m_pVMainLayout->addSpacerItem(new QSpacerItem(20,20,QSizePolicy::Minimum,QSizePolicy::Expanding)); + // m_pUserCodeLayout->addWidget(m_pLoginButton, 0, Qt::AlignCenter); + m_pVMainLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); initUserList(); } @@ -109,63 +109,64 @@ void LoginWindow::init() void LoginWindow::initUserList() { -// userList = UserService::queryUserInfo(""); -// for (int i = 0; i < userList.count(); i++) -// { -// QString userCode = userList.at(i)->getUserCode(); -// //QString userName = userList.at(i)->getUserName(); -// //m_pUserCodeEdit->addItem(userCode + splitFlag + userName); -// m_pUserCodeEdit->addItem(userCode); -// } + // userList = UserService::queryUserInfo(""); + // for (int i = 0; i < userList.count(); i++) + // { + // QString userCode = userList.at(i)->getUserCode(); + // //QString userName = userList.at(i)->getUserName(); + // //m_pUserCodeEdit->addItem(userCode + splitFlag + userName); + // m_pUserCodeEdit->addItem(userCode); + // } } void LoginWindow::clearInputData() { - m_pUserCodeEdit->clear(); - m_pPassWordEdit->clear(); - //m_pUserCodeEdit->setFocus(); + m_pUserCodeEdit->clear(); + m_pPassWordEdit->clear(); + //m_pUserCodeEdit->setFocus(); } QString getEncryptedPassword(const QString& password) { - QByteArray bytePwd = password.toLatin1(); - QByteArray bytePwdMd5 = QCryptographicHash::hash(bytePwd, QCryptographicHash::Md5); - return bytePwdMd5.toHex(); + QByteArray bytePwd = password.toLatin1(); + QByteArray bytePwdMd5 = QCryptographicHash::hash(bytePwd, QCryptographicHash::Md5); + return bytePwdMd5.toHex(); } void LoginWindow::doLogin() { - QString strUserCode = m_pUserCodeEdit->text(); - QString strPassWord = m_pPassWordEdit->text(); + QString strUserCode = m_pUserCodeEdit->text(); + QString strPassWord = m_pPassWordEdit->text(); - QString encryptedPassword = strPassWord; + QString encryptedPassword = strPassWord; strPassWord = "12345678"; - QString encryptPwd = getEncryptedPassword(strPassWord); - QString sql = QString("select UserCode from Account where UserCode='%1' and Password='%2'") - .arg(strUserCode).arg(encryptPwd); - if (SQLHelper::QueryCount(sql)>0) - { - accept(); - } else{ - warn->setVisible(true); - } -// bool isLoginSuccess = UserService::ValidateAccount(strUserCode, encryptedPassword); -// if (isLoginSuccess) -// { -// accept(); -// emit sigUserLoginSuccessful(strUserCode); -// } -// else -// { -// EQ9MessageBox box; -// box.setMessage(tr("login failed, please check input data")); -// box.exec(); -// return; -// } + QString encryptPwd = getEncryptedPassword(strPassWord); + QString sql = QString("select UserCode from Account where UserCode='%1' and Password='%2'") + .arg(strUserCode).arg(encryptPwd); + if (SQLHelper::QueryCount(sql) > 0) + { + accept(); + } + else { + warn->setVisible(true); + } + // bool isLoginSuccess = UserService::ValidateAccount(strUserCode, encryptedPassword); + // if (isLoginSuccess) + // { + // accept(); + // emit sigUserLoginSuccessful(strUserCode); + // } + // else + // { + // EQ9MessageBox box; + // box.setMessage(tr("login failed, please check input data")); + // box.exec(); + // return; + // } } //void LoginWindow::onUserCodeFocusOut(QFocusEvent* e) diff --git a/src/main.cpp b/src/main.cpp index d766ba5..67ead26 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,46 +1,68 @@ -#include "mainwindow.h" +#include "mainwindow.h" #include #include "loginwindow.h" #include "InputObject.h" #include #include #include -int main(int argc, char *argv[]) +#include +QString loadFontFromFile(QString path) +{ + static QString font; + static bool loaded = false; + if (!loaded) + { + loaded = true; + int loadedFontID = QFontDatabase::addApplicationFont(path); + QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(loadedFontID); + if (!loadedFontFamilies.empty()) + font = loadedFontFamilies.at(0); + } + return font; +} + +int main(int argc, char* argv[]) { //QLocale::setDefault(QLocale::English); qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); +#ifdef CUTE_STYLE + qputenv("QT_VIRTUALKEYBOARD_STYLE", QByteArray("retro")); +#endif // CUTE_STYLE + //qputenv("QT_LOGGING_RULES", QByteArray("qt.virtualkeyboard=true")); + QApplication a(argc, argv); QString layouts_path = QString(QCoreApplication::applicationDirPath()).append("/layouts"); qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH", QByteArray(layouts_path.toStdString().c_str())); - QQmlApplicationEngine engine; - engine.addImportPath("/VirtualKeyboard/content/styles"); -#ifdef CUTE_STYLE - qputenv("QT_VIRTUALKEYBOARD_STYLE", QByteArray("retro")); -#else - qputenv("QT_VIRTUALKEYBOARD_STYLE", QByteArray("default")); -#endif - QTextCodec *codec = QTextCodec::codecForName("utf8"); - QTextCodec::setCodecForLocale(codec); + QTextCodec* codec = QTextCodec::codecForName("utf8"); + QTextCodec::setCodecForLocale(codec); + + //QString fontName = loadFontFromFile(":/fonts/MicrosoftYahei.ttf"); + QString fontName = loadFontFromFile(":/fonts/DroidSansFallback.ttf"); + + + QFont font(fontName); + QApplication::setFont(font); + //a.installEventFilter(obj); - InputObject *obj = new InputObject(); + InputObject* obj = new InputObject(); a.installEventFilter(obj); - SQLHelper::Open(); - MainWindow w; - w.showFullScreen(); - LoginWindow l; - needLogin: - l.showFullScreen(); - int rec = l.exec(); - if (rec !=QDialog::Accepted ) - { - goto needLogin; - } -// l.deleteLater(); - w.centerWidgetShow(); + SQLHelper::Open(); + MainWindow w; + w.showFullScreen(); + LoginWindow l; +needLogin: + l.showFullScreen(); + int rec = l.exec(); + if (rec != QDialog::Accepted) + { + goto needLogin; + } + // l.deleteLater(); + w.centerWidgetShow(); - return a.exec(); + return a.exec(); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1273eca..751dad2 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -10,140 +10,143 @@ #include "guimessagedialog.h" #include "device/DeviceManager.h" -MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) +MainWindow::MainWindow(QWidget* parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) { - const QString style = "*{background-color:#3c3c3c; font-family:Microsoft YaHei; color:white;margin:0;font-size:16px;}" - "QTabBar::tab {\n" - "height:60px;" - "width:300px;" - "font-size: 25px;" - "background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\"\n" - "stop: 0 #333333, stop: 1.0 #555555);" - "border: 2px solid #505050;\n" -// "border-bottom-color: #323232; /* same as the pane color */\n" - "border-bottom-left-radius: 50%;\n" - "border-bottom-right-radius: 50%;\n" - "min-width: 8ex;\n" - "padding: 2px;\n" - "}" - "QTabBar::tab:selected, QTabBar::tab:hover {" - "border-top:5px solid #4a88c7;\n" - "background: #505050;}" - "QTabWidget::pane{margin:0}" - "QLineEdit{min-height:36px;max-height:36px; border:1px solid silver}" - "QLineEdit:enabled{background-color: #515151}" - "QDateEdit{min-height:36px;max-height:36px; border:1px solid silver}" - "QDateEdit:enabled{background-color: #515151}" - "QTextEdit{border:1px solid silver}" - "QTextEdit:enabled{background-color: #515151}" - "QComboBox{text-align:center;min-height:36px;max-height:36px; border:1px solid silver}" - "QComboBox:enabled{background-color: #515151}" - "QComboBox::drop-down{width:20px}" - "QComboBox QAbstractItemView{min-width:120px;}" - "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}" - "QScrollBar:vertical {min-width: 50px;}" - "QLabel{color:white; font-weight:bold; font-size:16px;}\n" - "QWidget#topbarWidget{min-height:36px;max-height:36px;}\n" - "QWidget#contentWidget{border-top:1px solid #515151;}\n" - "QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #515151; border-bottom:1px solid #323232;}\n" - "QLabel#logo{min-width:30px;max-width:30px}\n" - "QLabel#company{min-width:150px;max-width:150px; }\n" - "QLabel#systemMsgBar{min-width:500px;}\n" - "QWidget QWidget#statusBarWidget{min-width:300px;}\n" - "QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n" - "QToolButton#btn_main{border:2px solid #0078d8;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n" - "QWidget QToolButton:disabled{color:#606060 }\n" - "QWidget QToolButton:hover{background:#505050;}\n" - "QWidget QToolButton:checked{border:5px solid darkorange;padding:0px;}" - "QWidget#editcmdWidget{min-height:83px;max-height:83px;}" - "QWidget#verSpaceLine{ border-right:1px solid #0078d8;}" - //蒙版Dialog - "QDialog QWidget#innerWidget{ background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," - "stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);" - "border-radius:20px;border:5px solid #0078d8; }" - "QDialog QWidget QWidget{ background:transparent;color:#3078d8}" - "QDialog QWidget QWidget QLabel{ font-size:30px}" - "QLabel#lbl_progressicon{min-width:75px;max-width:75px;}" - "#spacer_1, #spacer_2{min-width:2px;max-width:2px;margin-top:6px;margin-bottom:6px;border-right:1px solid #0078d8;}"//green with 2 - ; - this->setStyleSheet(style); - ui->setupUi(this); - QTabWidget *tab = new QTabWidget(this); - tab->setTabPosition(QTabWidget::South); - tab->setContentsMargins(0,0,0,0); - connect(EventCenter::Default(),&EventCenter::PatientSelected,[=](QObject* sender,QObject* data){ - tab->setCurrentIndex(1); - }); - SelectFormWidget* select_form= new SelectFormWidget(this); - tab->addTab(select_form, "Select"); - ScanFormWidget* scan_form= new ScanFormWidget(this); - tab->addTab(scan_form, "Scan"); - TabFormWidget* verify_form= new TabFormWidget(this); - tab->addTab(verify_form, "Verify"); - tab->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); - QHBoxLayout * layout = new QHBoxLayout(); - layout->setMargin(0); - layout->addWidget(tab); - ui->centralWidget->setLayout(layout); - this->setWindowFlags (Qt::Window); - connect(EventCenter::Default(),&EventCenter::GUIErrorRaise,[=](QObject*,QObject* msg){ - if (!msgDialog) msgDialog = new GUIMessageDialog(this); - if (msg) - { - QString* str = (QString*)msg; - msgDialog->showMessage(*str); - } else { - msgDialog->showMessage("Something went error!"); - } - msgDialog->showExitButton(); - msgDialog->stopLoading(); - msgDialog->showFullScreen(); - }); - connect(EventCenter::Default(),&EventCenter::InvokeOperationStart,[=](QObject*,QObject* msg){ - if (!msgDialog) msgDialog = new GUIMessageDialog(this); - if (msg) - { - QString* str = (QString*)msg; - msgDialog->showMessage(*str); - } else{ - msgDialog->hideMessage(); - } - msgDialog->hideExitButton(); - msgDialog->startLoading(); - msgDialog->showFullScreen(); - }); - connect(EventCenter::Default(),&EventCenter::InvokeOperationProgress,[=](QObject*,QObject* msg){ - if (!msgDialog) msgDialog = new GUIMessageDialog(this); - if (msg) - { - QVariant* var = (QVariant*)msg; - msgDialog->showMessage(QString("Scanning %1%").arg((int)(var->toFloat()*100.0f))); - } else{ - msgDialog->hideMessage(); - } - msgDialog->hideExitButton(); - msgDialog->showFullScreen(); - }); - connect(EventCenter::Default(),&EventCenter::InvokeOperationEnd,[=](){ - if (!msgDialog) return; - msgDialog->stopLoading(); - msgDialog->hide(); - }); - DeviceManager::Default()->initDevice(); - centerWidgetHide(); + const QString style = "*{background-color:#3c3c3c; color:white;margin:0;font-size:16px;}" + "QTabBar::tab {\n" + "height:60px;" + "width:300px;" + "font-size: 25px;" + "background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\"\n" + "stop: 0 #333333, stop: 1.0 #555555);" + "border: 2px solid #505050;\n" + // "border-bottom-color: #323232; /* same as the pane color */\n" + "border-bottom-left-radius: 50%;\n" + "border-bottom-right-radius: 50%;\n" + "min-width: 8ex;\n" + "padding: 2px;\n" + "}" + "QTabBar::tab:selected, QTabBar::tab:hover {" + "border-top:5px solid #4a88c7;\n" + "background: #505050;}" + "QTabWidget::pane{margin:0}" + "QLineEdit{min-height:36px;max-height:36px; border:1px solid silver}" + "QLineEdit:enabled{background-color: #515151}" + "QDateEdit{min-height:36px;max-height:36px; border:1px solid silver}" + "QDateEdit:enabled{background-color: #515151}" + "QTextEdit{border:1px solid silver}" + "QTextEdit:enabled{background-color: #515151}" + "QComboBox{text-align:center;min-height:36px;max-height:36px; border:1px solid silver}" + "QComboBox:enabled{background-color: #515151}" + "QComboBox::drop-down{width:20px}" + "QComboBox QAbstractItemView{min-width:120px;}" + "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}" + "QScrollBar:vertical {min-width: 50px;}" + "QLabel{color:white; font-weight:bold; font-size:16px;}\n" + "QWidget#topbarWidget{min-height:36px;max-height:36px;}\n" + "QWidget#contentWidget{border-top:1px solid #515151;}\n" + "QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #515151; border-bottom:1px solid #323232;}\n" + "QLabel#logo{min-width:30px;max-width:30px}\n" + "QLabel#company{min-width:150px;max-width:150px; }\n" + "QLabel#systemMsgBar{min-width:500px;}\n" + "QWidget QWidget#statusBarWidget{min-width:300px;}\n" + "QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n" + "QToolButton#btn_main{border:2px solid #0078d8;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n" + "QWidget QToolButton:disabled{color:#606060 }\n" + "QWidget QToolButton:hover{background:#505050;}\n" + "QWidget QToolButton:checked{border:5px solid darkorange;padding:0px;}" + "QWidget#editcmdWidget{min-height:83px;max-height:83px;}" + "QWidget#verSpaceLine{ border-right:1px solid #0078d8;}" + //蒙版Dialog + "QDialog QWidget#innerWidget{ background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," + "stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);" + "border-radius:20px;border:5px solid #0078d8; }" + "QDialog QWidget QWidget{ background:transparent;color:#3078d8}" + "QDialog QWidget QWidget QLabel{ font-size:30px}" + "QLabel#lbl_progressicon{min-width:75px;max-width:75px;}" + "#spacer_1, #spacer_2{min-width:2px;max-width:2px;margin-top:6px;margin-bottom:6px;border-right:1px solid #0078d8;}"//green with 2 + ; + this->setStyleSheet(style); + ui->setupUi(this); + QTabWidget* tab = new QTabWidget(this); + tab->setTabPosition(QTabWidget::South); + tab->setContentsMargins(0, 0, 0, 0); + connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) { + tab->setCurrentIndex(1); + }); + SelectFormWidget* select_form = new SelectFormWidget(this); + tab->addTab(select_form, "Select"); + ScanFormWidget* scan_form = new ScanFormWidget(this); + tab->addTab(scan_form, "Scan"); + TabFormWidget* verify_form = new TabFormWidget(this); + tab->addTab(verify_form, "Verify"); + tab->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + QHBoxLayout* layout = new QHBoxLayout(); + layout->setMargin(0); + layout->addWidget(tab); + ui->centralWidget->setLayout(layout); + this->setWindowFlags(Qt::Window); + connect(EventCenter::Default(), &EventCenter::GUIErrorRaise, [=](QObject*, QObject* msg) { + if (!msgDialog) msgDialog = new GUIMessageDialog(this); + if (msg) + { + QString* str = (QString*)msg; + msgDialog->showMessage(*str); + } + else { + msgDialog->showMessage("Something went error!"); + } + msgDialog->showExitButton(); + msgDialog->stopLoading(); + msgDialog->showFullScreen(); + }); + connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) { + if (!msgDialog) msgDialog = new GUIMessageDialog(this); + if (msg) + { + QString* str = (QString*)msg; + msgDialog->showMessage(*str); + } + else { + msgDialog->hideMessage(); + } + msgDialog->hideExitButton(); + msgDialog->startLoading(); + msgDialog->showFullScreen(); + }); + connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) { + if (!msgDialog) msgDialog = new GUIMessageDialog(this); + if (msg) + { + QVariant* var = (QVariant*)msg; + msgDialog->showMessage(QString("Scanning %1%").arg((int)(var->toFloat() * 100.0f))); + } + else { + msgDialog->hideMessage(); + } + msgDialog->hideExitButton(); + msgDialog->showFullScreen(); + }); + connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() { + if (!msgDialog) return; + msgDialog->stopLoading(); + msgDialog->hide(); + }); + DeviceManager::Default()->initDevice(); + centerWidgetHide(); } MainWindow::~MainWindow() { - delete ui; + delete ui; } void MainWindow::centerWidgetHide() { - ui->centralWidget->hide(); + ui->centralWidget->hide(); } void MainWindow::centerWidgetShow() { - ui->centralWidget->show(); + ui->centralWidget->show(); }