移除Linguist。
This commit is contained in:
parent
1999060806
commit
6c9632d659
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,130 +0,0 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2020-09-14T10:46:41
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
TARGET = facetick
|
||||
TEMPLATE = app
|
||||
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any feature of Qt which has been marked as deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# You can also make your code fail to compile if you use deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
SOURCES += \
|
||||
keyboard/keyboard.cpp \
|
||||
keyboard/LineEditWithKeyboard.cpp \
|
||||
keyboard/LineEditWithPopup.cpp \
|
||||
interface/View.cpp \
|
||||
interface/BackstageInterfaceForUi.cpp \
|
||||
interface/BackStage.cpp \
|
||||
recoUi/recoUiRecognize.cpp \
|
||||
recoUi/recoUiCallConsole.cpp \
|
||||
recoUi/recoUiRecognizeScene.cpp \
|
||||
recoUi/recoUiUnauthorized.cpp \
|
||||
recoUi/recoUiCallDial.cpp \
|
||||
recoUi/recoUiRecognizeTypeBase.cpp \
|
||||
recoUi/recoUiPassword.cpp \
|
||||
recoUi/recoUiHealthCode.cpp \
|
||||
recoUi/recoUi.cpp \
|
||||
recoUi/recoUiScreensaver.cpp \
|
||||
setupUi/SetupUi.cpp \
|
||||
setUi/settingUiFastCfg.cpp \
|
||||
setUi/settingUiSysMng.cpp \
|
||||
setUi/settingUiInfo.cpp \
|
||||
setUi/settingUiAccMng.cpp \
|
||||
setUi/settingUIProjectSet.cpp \
|
||||
setUi/settingUiFaceMng.cpp \
|
||||
setUi/settingUi.cpp \
|
||||
setUi/settingUiDevMng.cpp \
|
||||
setUi/settingUiRecoSet.cpp \
|
||||
setUi/settingUiDevTest.cpp \
|
||||
utility/DndModeCountDownItem.cpp \
|
||||
utility/SwitchControl.cpp \
|
||||
utility/UiTools.cpp \
|
||||
mainUi/UiConfig.cpp \
|
||||
mainUi/mainUi.cpp
|
||||
|
||||
|
||||
HEADERS += \
|
||||
keyboard/LineEditWithKeyboard.h \
|
||||
keyboard/keyboard.h \
|
||||
keyboard/LineEditWithPopup.h \
|
||||
interface/BackStage.h \
|
||||
interface/View.h \
|
||||
interface/BackstageInterfaceForUi.h \
|
||||
interface/UiInterfaceForBackstage.h \
|
||||
recoUi/recoUiHealthCode.h \
|
||||
recoUi/recoUiCallDial.h \
|
||||
recoUi/recoUiCallConsole.h \
|
||||
recoUi/recoUiPassword.h \
|
||||
recoUi/recoUiRecognizeScene.h \
|
||||
recoUi/recoUiRecognize.h \
|
||||
recoUi/recoUiScreensaver.h \
|
||||
recoUi/recoUiUnauthorized.h \
|
||||
recoUi/recoUiRecognizeTypeBase.h \
|
||||
recoUi/recoUi.h \
|
||||
setupUi/SetupUi.h \
|
||||
setUi/settingUiDevTest.h \
|
||||
setUi/settingUiAccMng.h \
|
||||
setUi/settingUIProjectSet.h \
|
||||
setUi/settingUiFastCfg.h \
|
||||
setUi/settingUi.h \
|
||||
setUi/settingUiRecoSet.h \
|
||||
setUi/settingUiDevMng.h \
|
||||
setUi/settingUiSysMng.h \
|
||||
setUi/settingUiInfo.h \
|
||||
setUi/settingUiFaceMng.h \
|
||||
utility/AsyncEvent.h \
|
||||
utility/SwitchControl.h \
|
||||
utility/DndModeCountDownItem.h \
|
||||
utility/UiTools.h \
|
||||
mainUi/debug.h \
|
||||
mainUi/UiConfig.h \
|
||||
mainUi/UiCommon.h \
|
||||
mainUi/mainUi.h
|
||||
|
||||
INCLUDEPATH += keyboard \
|
||||
interface \
|
||||
recoUi \
|
||||
setUi \
|
||||
utility \
|
||||
mainUi
|
||||
|
||||
# Default rules for deployment.
|
||||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
||||
|
||||
RESOURCES += \
|
||||
res.qrc
|
||||
|
||||
CONFIG += C++11
|
||||
#CONFIG += console pro
|
||||
|
||||
TRANSLATIONS += FaceTick_TC.ts
|
||||
TRANSLATIONS += FaceTick_EN.ts
|
||||
TRANSLATIONS += FaceTick_JP.ts
|
||||
TRANSLATIONS += FaceTick_KR.ts
|
||||
TRANSLATIONS += FaceTick_SP.ts
|
||||
TRANSLATIONS += FaceTick_TH.ts
|
||||
TRANSLATIONS += FaceTick_PT.ts
|
||||
TRANSLATIONS += FaceTick_IT.ts
|
||||
TRANSLATIONS += FaceTick_FR.ts
|
||||
TRANSLATIONS += FaceTick_IW.ts
|
||||
TRANSLATIONS += FaceTick_DE.ts
|
||||
TRANSLATIONS += FaceTick_TR.ts
|
||||
TRANSLATIONS += FaceTick_HU.ts
|
@ -1,33 +0,0 @@
|
||||
#include "LineEditWithKeyboard.h"
|
||||
#include <QDebug>
|
||||
#include "keyboard.h"
|
||||
|
||||
LineEditWithKeyboard::LineEditWithKeyboard(QWidget *parent) :
|
||||
QLineEdit(parent), m_keyboard(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
void LineEditWithKeyboard::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
qDebug() << "LineEditWithKeyboard::mousePressEvent";
|
||||
emit signalMousePressed();
|
||||
|
||||
keyboard::GetInstance(this);
|
||||
QLineEdit::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void LineEditWithKeyboard::slotWordChoose(QString word)
|
||||
{
|
||||
setText(text() + word);
|
||||
}
|
||||
|
||||
void LineEditWithKeyboard::keyPressEvent(QKeyEvent* event)
|
||||
{
|
||||
//qDebug() << "LineEditWithKeyboard::keyPressEvent";
|
||||
emit signalMousePressed();
|
||||
QWidget* w = dynamic_cast<QWidget*>(parent());
|
||||
if(w)
|
||||
w->setFocus();
|
||||
QLineEdit::keyPressEvent(event);
|
||||
}
|
||||
|
@ -1,28 +0,0 @@
|
||||
#ifndef LINEDIT_WITH_KEYBOARD
|
||||
#define LINEDIT_WITH_KEYBOARD
|
||||
#include <QWidget>
|
||||
#include <QLineEdit>
|
||||
#include "keyboard.h"
|
||||
|
||||
class LineEditWithKeyboard : public QLineEdit
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
LineEditWithKeyboard(QWidget *parent = nullptr);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
signals:
|
||||
void signalMousePressed();
|
||||
|
||||
public slots:
|
||||
void slotWordChoose(QString word);
|
||||
|
||||
private:
|
||||
void keyPressEvent(QKeyEvent* event);
|
||||
|
||||
keyboard* m_keyboard;
|
||||
};
|
||||
|
||||
#endif // LINEDIT_WITH_KEYBOARD
|
@ -1,17 +0,0 @@
|
||||
#include "LineEditWithPopup.h"
|
||||
|
||||
LineEditWithPopup::LineEditWithPopup(QWidget *parent) : QLineEdit(parent)
|
||||
{
|
||||
connect(this, SIGNAL(signalCallPopup()), this, SLOT(slotShowPopup));
|
||||
}
|
||||
|
||||
|
||||
void LineEditWithPopup::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
|
||||
QLineEdit::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void LineEditWithPopup::slotShowPopup()
|
||||
{
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
#ifndef LINEEDITWITHPOPUP_H
|
||||
#define LINEEDITWITHPOPUP_H
|
||||
|
||||
#include <QLineEdit>
|
||||
#include <QStringList>
|
||||
|
||||
class LineEditWithPopup : public QLineEdit
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit LineEditWithPopup(QWidget *parent = nullptr);
|
||||
signals:
|
||||
void signalCallPopup();
|
||||
|
||||
public slots:
|
||||
void slotShowPopup();
|
||||
|
||||
private:
|
||||
QStringList* m_list;
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
};
|
||||
|
||||
#endif // LINEEDITWITHPOPUP_H
|
@ -1,594 +0,0 @@
|
||||
#include "keyboard.h"
|
||||
#include "LineEditWithKeyboard.h"
|
||||
#include <QEvent>
|
||||
#include <QKeyEvent>
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QPainter>
|
||||
#include <QMessageBox>
|
||||
#include <QLabel>
|
||||
#include <QTimer>
|
||||
|
||||
#include "UiConfig.h"
|
||||
#include "UiTools.h"
|
||||
|
||||
//∧ len:3
|
||||
#define KEY_COL_UNIT 4
|
||||
#define KEY_HIDE " ▼ "
|
||||
#define KEY_UPPER "△"
|
||||
#define KEY_LOWER "∧"
|
||||
#define KEY_SYMBOL " !@# "
|
||||
#define KEY_SYMBOL_BACK "Back"
|
||||
#define KEY_CN "中"
|
||||
#define KEY_EN "En"
|
||||
#define KEY_SPACE " Space "
|
||||
#define KEY_BACKSPACE " ← "
|
||||
#define KEY_ENTER "Enter"
|
||||
|
||||
|
||||
|
||||
//添加按键时需要注意不要超出头文件中定义的按键个数
|
||||
static const char* lower_letter[] = {KEY_HIDE,
|
||||
"1","2","3","4","5","6","7","8","9","0",
|
||||
"q","w","e","r","t","y","u","i","o","p",
|
||||
"a","s","d","f","g","h","j","k","l",
|
||||
KEY_UPPER,"z","x","c","v","b","n","m",KEY_BACKSPACE,
|
||||
KEY_CN,KEY_SYMBOL,KEY_SPACE,".",KEY_ENTER};
|
||||
|
||||
static const char* upper_letter[] = {KEY_HIDE,
|
||||
"1","2","3","4","5","6","7","8","9","0",
|
||||
"Q","W","E","R","T","Y","U","I","O","P",
|
||||
"A","S","D","F","G","H","J","K","L",
|
||||
KEY_LOWER,"Z","X","C","V", "B","N","M",KEY_BACKSPACE,
|
||||
KEY_CN,KEY_SYMBOL,KEY_SPACE,".",KEY_ENTER};
|
||||
|
||||
static const char* cn_letter[] = {KEY_HIDE,
|
||||
"-","=","[","]","\\",";","\'",",","?","/",
|
||||
"!","@","#","$","%","^","&&","*","(",")",
|
||||
"_","+","{","}","|",":","\"","<",">",
|
||||
"~","·","×","÷","「","」","✘","√",KEY_BACKSPACE,
|
||||
KEY_CN,KEY_SYMBOL_BACK,KEY_SPACE,".",KEY_ENTER};
|
||||
|
||||
static const int COL_NUM_EACH_ROW[] = {1, 10, 10, 9, 9, 5};
|
||||
static const int KEY_NUM = sizeof(lower_letter) / sizeof(*lower_letter);
|
||||
|
||||
|
||||
#if 0
|
||||
QPushButton* keyboard::m_btn[KEYS_QUANTITY_MAX] = {nullptr};
|
||||
//chinese support
|
||||
QVector<QPushButton*>* keyboard::m_btnsCnCdd = nullptr;
|
||||
QLineEdit* keyboard::m_editCn = nullptr;
|
||||
QPushButton* keyboard::m_btnCnPrePage = nullptr;
|
||||
QPushButton* keyboard::m_btnCnNextPage = nullptr;
|
||||
#endif
|
||||
|
||||
QFile* keyboard::m_pinyinFile = nullptr;
|
||||
QRegExp* keyboard::m_regExp = nullptr;
|
||||
QMultiMap<QString, QString>* keyboard::m_pinyinMap = nullptr;
|
||||
|
||||
keyboard* keyboard::m_instance = nullptr;
|
||||
keyboard::enKeyboardStatus keyboard::m_status = enKeyboardNotGen;
|
||||
|
||||
keyboard* keyboard::GetInstance(QWidget *parent)
|
||||
{
|
||||
if(nullptr == m_instance && nullptr != parent){
|
||||
qDebug() << "create keyboard";
|
||||
m_status = enKeyboardCreating;
|
||||
m_instance = new keyboard(parent);
|
||||
m_instance->popup();
|
||||
m_status = enKeyboardCreated;
|
||||
}
|
||||
if(parent){
|
||||
QObject* recv = static_cast<QObject*>(parent);
|
||||
if(m_instance->receiver() != recv){
|
||||
m_instance->setReceiver(static_cast<QObject*>(parent));
|
||||
}
|
||||
}
|
||||
return m_instance;
|
||||
}
|
||||
|
||||
void keyboard::close()
|
||||
{
|
||||
if(m_instance){
|
||||
if(enKeyboardCreated == m_status){
|
||||
qDebug() << "close keyboard";
|
||||
m_instance->slotClose();
|
||||
}
|
||||
else {
|
||||
qDebug() << "close keyboard later";
|
||||
QTimer::singleShot(500, m_instance, SLOT(slotClose()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::preLoad()
|
||||
{
|
||||
if(nullptr == m_instance){
|
||||
qDebug() << "keyboard pre load";
|
||||
keyboard();
|
||||
}
|
||||
}
|
||||
|
||||
keyboard::keyboard(QWidget *parent) : QDialog(parent), m_receiver(nullptr)
|
||||
{
|
||||
m_status = enKeyboardNotGen;
|
||||
m_editCn = nullptr;
|
||||
m_btnCnPrePage = nullptr;
|
||||
m_btnCnNextPage = nullptr;
|
||||
|
||||
setReceiver(static_cast<QObject*>(parent));
|
||||
|
||||
qDebug() << "keyboard()";
|
||||
QPalette palette(this->palette());
|
||||
palette.setColor(QPalette::ButtonText, Qt::white);
|
||||
|
||||
const int chooseBtnHeight = UiConfig::GetInstance()->getUiWidth() / 16;
|
||||
|
||||
m_btnsCnCdd.resize(8);
|
||||
QHBoxLayout* hLayoutCdd = new QHBoxLayout();
|
||||
for(auto &b : m_btnsCnCdd)
|
||||
{
|
||||
//if(nullptr == b){
|
||||
b = new QPushButton();
|
||||
b->setFixedWidth(static_cast<int>(UiConfig::GetInstance()->getUiWidth()) / m_btnsCnCdd.size());
|
||||
b->setPalette(palette);
|
||||
b->setStyleSheet("background-color: transparent;");
|
||||
b->setFlat(true);
|
||||
b->setFixedSize(chooseBtnHeight * 2, chooseBtnHeight);
|
||||
connect(b, SIGNAL(clicked(bool)), this, SLOT(slotCandidateBtnClicked()));
|
||||
//}
|
||||
hLayoutCdd->addWidget(b, 1, Qt::AlignLeft);
|
||||
}
|
||||
hLayoutCdd->addWidget(new QLabel(this), 100, Qt::AlignRight);
|
||||
|
||||
if(nullptr == m_editCn){
|
||||
m_editCn = new QLineEdit();
|
||||
m_editCn->setReadOnly(true);
|
||||
palette.setColor(QPalette::Text, Qt::white);
|
||||
m_editCn->setPalette(palette);
|
||||
m_editCn->setFixedSize(chooseBtnHeight * 4, chooseBtnHeight);
|
||||
m_editCn->setStyleSheet("background:transparent;border-width:0;border-style:outset");
|
||||
}
|
||||
if(nullptr == m_btnCnPrePage){
|
||||
m_btnCnPrePage = new QPushButton();
|
||||
m_btnCnPrePage->setText(" ↑ ");
|
||||
m_btnCnPrePage->setPalette(palette);
|
||||
m_btnCnPrePage->setFixedSize(chooseBtnHeight * 2, chooseBtnHeight);
|
||||
m_btnCnPrePage->setStyleSheet("background-color: rgb(57, 53, 50);");
|
||||
connect(m_btnCnPrePage, SIGNAL(clicked(bool)), this, SLOT(slotPageTurnBtnClicked()));
|
||||
}
|
||||
|
||||
if(nullptr == m_btnCnNextPage){
|
||||
m_btnCnNextPage = new QPushButton();
|
||||
m_btnCnNextPage->setText(" ↓ ");
|
||||
m_btnCnNextPage->setPalette(palette);
|
||||
m_btnCnNextPage->setFixedSize(chooseBtnHeight * 2, chooseBtnHeight);
|
||||
m_btnCnNextPage->setStyleSheet("background-color: rgb(57, 53, 50);");
|
||||
connect(m_btnCnNextPage, SIGNAL(clicked(bool)), this, SLOT(slotPageTurnBtnClicked()));
|
||||
}
|
||||
|
||||
QVBoxLayout* vLayout = new QVBoxLayout();
|
||||
vLayout->addLayout(hLayoutCdd);
|
||||
|
||||
QHBoxLayout* hLayoutLine[ROW_NUM] = {nullptr};
|
||||
for(int i = 0; i < ROW_NUM; i ++)
|
||||
{
|
||||
hLayoutLine[i] = new QHBoxLayout();
|
||||
hLayoutLine[i]->setMargin(0);
|
||||
//hLayoutLine[i]->setSpacing(15);
|
||||
if(i < ROW_NUM - 1){ //最后一列不需要
|
||||
hLayoutLine[i]->addStretch(0);
|
||||
}
|
||||
}
|
||||
hLayoutLine[0]->addWidget(m_editCn, 2, Qt::AlignLeft);
|
||||
hLayoutLine[0]->addWidget(m_btnCnPrePage, 1, Qt::AlignLeft);
|
||||
hLayoutLine[0]->addWidget(m_btnCnNextPage, 1, Qt::AlignLeft);
|
||||
|
||||
int col = 0;
|
||||
int row = 0;
|
||||
int colMax = 0; //最大列数
|
||||
int colTaken = 0;
|
||||
palette.setColor(QPalette::ButtonText, Qt::white);
|
||||
QFont ft;
|
||||
ft.setPointSize(UiConfig::GetInstance()->isRkDevice() ? 12 : 24);
|
||||
for(int i = 0; i < KEY_NUM; i ++)
|
||||
{
|
||||
m_btn[i] = new QPushButton(this);
|
||||
m_btn[i]->setPalette(palette);
|
||||
m_btn[i]->setStyleSheet("background-color: rgb(57, 53, 50);");
|
||||
m_btn[i]->setFocusPolicy(Qt::NoFocus);
|
||||
m_btn[i]->setFont(ft);
|
||||
//m_btn[i]->setFlat(true);
|
||||
|
||||
connect(m_btn[i], SIGNAL(clicked(bool)), this, SLOT(slotBtnClicked()));
|
||||
connect(m_btn[i], SIGNAL(pressed()), this, SLOT(slotBtnPressed()));
|
||||
connect(m_btn[i], SIGNAL(released()), this, SLOT(slotBtnReleased()));
|
||||
|
||||
int btnCol = (strlen(lower_letter[i]) / KEY_COL_UNIT) + 1;
|
||||
hLayoutLine[row]->addWidget(m_btn[i]);
|
||||
|
||||
colTaken += btnCol;
|
||||
col++;
|
||||
if(COL_NUM_EACH_ROW[row] == col)
|
||||
{
|
||||
col = 0;
|
||||
row++;
|
||||
if(colTaken > colMax){
|
||||
colMax = colTaken;
|
||||
}
|
||||
colTaken = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int unit = (UiConfig::GetInstance()->getUiWidth() - ((colMax - 1) * SPACE)) / colMax;
|
||||
for(int i = 0; i < KEY_NUM; i ++)
|
||||
{
|
||||
int btnCol = (strlen(lower_letter[i]) / KEY_COL_UNIT) + 1;
|
||||
m_btn[i]->setFixedSize(unit * btnCol, static_cast<int>(unit));
|
||||
}
|
||||
for(int i = 0; i < ROW_NUM; i ++)
|
||||
{
|
||||
if(i > 0 && i < ROW_NUM - 1){ //首行和尾行不需要
|
||||
hLayoutLine[i]->addStretch(0);
|
||||
}
|
||||
vLayout->addLayout(hLayoutLine[i]);
|
||||
}
|
||||
vLayout->setSpacing(5);//10
|
||||
vLayout->setContentsMargins(0, 10, 0, 10);
|
||||
setLayout(vLayout);
|
||||
setFocusPolicy(Qt::NoFocus);
|
||||
setWindowFlags( Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool | Qt::WindowDoesNotAcceptFocus);
|
||||
|
||||
if(nullptr == m_pinyinFile){
|
||||
m_pinyinFile = new QFile();
|
||||
m_pinyinFile->setFileName(":/res/inputCn/pinyin-utf8"); //设置QFile的名称
|
||||
if(!m_pinyinFile->open(QIODevice::ReadOnly) ){ //只读模式,打开文件
|
||||
QMessageBox::warning(nullptr, "pinyin file", "can't load"); //打开失败,则报错
|
||||
}
|
||||
}
|
||||
if(nullptr == m_regExp){
|
||||
m_regExp = new QRegExp();
|
||||
m_regExp->setCaseSensitivity(Qt::CaseSensitive); //设置正则表达式的参数,Qt::CaseInsensitive,大小写敏感
|
||||
m_regExp->setPattern(QString("([a-z]+)")); //获得正则本身,获取a-z
|
||||
}
|
||||
if(nullptr == m_pinyinMap){
|
||||
m_pinyinMap = new QMultiMap<QString, QString>();
|
||||
while(!m_pinyinFile->atEnd())
|
||||
{
|
||||
QByteArray lineData = m_pinyinFile->readLine(); //读取一行
|
||||
//qDebug() << "line:" << QString(data.data());
|
||||
int ret = m_regExp->indexIn(QString(lineData.data()), 0, QRegExp::CaretAtZero); //进行匹配,如果成功则返回index,不成功返回-1 ,data.data()是读取到的一行数据,返回值应该是匹配到的位置
|
||||
//qDebug() << "ret =" << ret;
|
||||
//qDebug() << "m_regExp.cap(1):" << m_regExp.cap(1) << "QString(lineData.data()).left(ret):" << QString(lineData.data()).left(ret);
|
||||
if("\r\n" != QString(lineData.data()).left(ret)){
|
||||
m_pinyinMap->insert(m_regExp->cap(1), QString(lineData.data()).left(ret)); //将mmap对象的成员初始化;key是字母,value是行字
|
||||
}
|
||||
}
|
||||
m_pinyinFile->close();
|
||||
}
|
||||
setInputMethodCn(false);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setFixedWidth(UiConfig::GetInstance()->getUiWidth());
|
||||
|
||||
m_labelTip = new QLabel(this);
|
||||
m_labelTip->setFixedSize(unit, static_cast<int>(unit * 1.5));
|
||||
m_labelTip->setFont(ft);
|
||||
m_labelTip->setStyleSheet("background-color: rgb(15, 116, 248);");
|
||||
m_labelTip->setAlignment(Qt :: AlignCenter);
|
||||
m_labelTip->hide();
|
||||
|
||||
m_timer = new QTimer(this);
|
||||
connect(m_timer, SIGNAL(timeout()), this, SLOT(slotTimer()));
|
||||
|
||||
shiftkeyboard(2);
|
||||
}
|
||||
|
||||
keyboard::~keyboard()
|
||||
{
|
||||
qDebug() << "~keyboard()";
|
||||
m_instance = nullptr;
|
||||
}
|
||||
|
||||
void keyboard::setInputMethodCn(bool setCn)
|
||||
{
|
||||
if(setCn){
|
||||
m_editCn->clear();
|
||||
m_editCn->show();
|
||||
}
|
||||
else {
|
||||
for(auto &b : m_btnsCnCdd){
|
||||
b->hide();
|
||||
}
|
||||
m_editCn->hide();
|
||||
m_btnCnPrePage->hide();
|
||||
m_btnCnNextPage->hide();
|
||||
}
|
||||
isInputMethodCn = setCn;
|
||||
}
|
||||
|
||||
void keyboard::shiftkeyboard(int caps)
|
||||
{
|
||||
const char** letter = nullptr;
|
||||
if(0 == caps){
|
||||
letter = upper_letter;
|
||||
}
|
||||
else if (1 == caps) {
|
||||
letter = cn_letter;
|
||||
}
|
||||
else if (2 == caps) {
|
||||
letter = lower_letter;
|
||||
}
|
||||
for(int i = 0; i < KEY_NUM; i ++){
|
||||
if(m_btn[i]->text().isEmpty()){ //if has icon, clear first
|
||||
m_btn[i]->setIcon(QIcon());
|
||||
}
|
||||
if(QString(letter[i]) == KEY_BACKSPACE){
|
||||
m_btn[i]->setText("");
|
||||
//m_btn[i]->setIcon(QIcon(":res/image/pwd_del_large.png"));
|
||||
setButtonBackImage(m_btn[i], ":res/image/pwd_del_large_black.png", m_btn[i]->height() / 2 , static_cast<int>(m_btn[i]->height() * 0.34));//w/2*(24/35)
|
||||
m_btn[i]->setStyleSheet("background-color: rgb(57, 53, 50);");
|
||||
m_btn[i]->setProperty("key", letter[i]);
|
||||
}
|
||||
else if(QString(letter[i]) == KEY_UPPER){
|
||||
m_btn[i]->setText("");
|
||||
//m_btn[i]->setIcon(QIcon(":res/image/shift_large.png"));
|
||||
setButtonBackImage(m_btn[i], ":res/image/shift_large_black.png", m_btn[i]->height() / 2, m_btn[i]->height() / 2);
|
||||
m_btn[i]->setStyleSheet("background-color: rgb(57, 53, 50);");
|
||||
m_btn[i]->setProperty("key", letter[i]);
|
||||
}
|
||||
else if(QString(letter[i]) == KEY_LOWER){
|
||||
m_btn[i]->setText("");
|
||||
//m_btn[i]->setIcon(QIcon(":res/image/shift_lock_large.png"));
|
||||
setButtonBackImage(m_btn[i], ":res/image/shift_lock_large_black.png", m_btn[i]->height() / 2, m_btn[i]->height() / 2);
|
||||
m_btn[i]->setStyleSheet("background-color: rgb(57, 53, 50);");
|
||||
m_btn[i]->setProperty("key", letter[i]);
|
||||
}
|
||||
else{
|
||||
m_btn[i]->setText(letter[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::slotBtnPressed()
|
||||
{
|
||||
//qDebug() << "unit:" << dynamic_cast<QPushButton*>(sender())->width();
|
||||
QPushButton* btn = dynamic_cast<QPushButton*>(sender());
|
||||
if(btn){
|
||||
for(int i = 0; i < KEY_NUM - 4; i ++){
|
||||
if(btn == m_btn[i]){
|
||||
int len = strlen(btn->text().toStdString().c_str());
|
||||
if(len > 0 && len <= 3){
|
||||
m_labelTip->setText(btn->text());
|
||||
m_labelTip->move(btn->x(), btn->y() - m_labelTip->height());
|
||||
m_labelTip->show();
|
||||
}
|
||||
}
|
||||
}
|
||||
m_curPressedKey = btn;
|
||||
m_timer->start(500);
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::slotBtnReleased()
|
||||
{
|
||||
m_labelTip->hide();
|
||||
m_timer->stop();
|
||||
m_curPressedKey = nullptr;
|
||||
}
|
||||
|
||||
void keyboard::slotBtnClicked()
|
||||
{
|
||||
for(int i = 0; i < KEY_NUM; i ++){
|
||||
if(sender() == m_btn[i]){
|
||||
keyPress(m_btn[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::slotPageTurnBtnClicked()
|
||||
{
|
||||
if(sender() == m_btnCnPrePage){
|
||||
changePage(--m_iCddPageIndex);
|
||||
}
|
||||
else if (sender() == m_btnCnNextPage) {
|
||||
changePage(++m_iCddPageIndex);
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::slotCandidateBtnClicked()
|
||||
{
|
||||
for(auto &b : m_btnsCnCdd){
|
||||
if(sender() == b){
|
||||
emit signalWordChoose(b->text());
|
||||
m_editCn->clear();
|
||||
for(auto &btn : m_btnsCnCdd){
|
||||
btn->hide();
|
||||
}
|
||||
m_btnCnPrePage->hide();
|
||||
m_btnCnNextPage->hide();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::slotClose()
|
||||
{
|
||||
done(0);
|
||||
}
|
||||
|
||||
void keyboard::slotTimer()
|
||||
{
|
||||
if(m_curPressedKey){
|
||||
m_timer->start(100);
|
||||
keyPress(m_curPressedKey);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void keyboard::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
QPainter painter(this);
|
||||
painter.fillRect(this->rect(), QColor(0, 0, 0,/*0x1f, 0x28, 0x41,*/ 255)); //QColor最后一个参数代表背景的透明度
|
||||
return QWidget::paintEvent(event);
|
||||
}
|
||||
|
||||
void keyboard::keyPress(const QPushButton* btn)
|
||||
{
|
||||
if(!btn){
|
||||
return;
|
||||
}
|
||||
|
||||
QString str = btn->text();
|
||||
if(str.isEmpty()){
|
||||
str = btn->property("key").toString();
|
||||
}
|
||||
|
||||
QKeyEvent* event = nullptr;
|
||||
if(str == KEY_BACKSPACE){
|
||||
event = new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier);
|
||||
}else if(str == KEY_ENTER){
|
||||
event = new QKeyEvent(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
|
||||
}else if(str == KEY_UPPER){
|
||||
shiftkeyboard(0);//upper_letter
|
||||
}else if(str == KEY_LOWER){
|
||||
shiftkeyboard(2);//lower_letter
|
||||
}else if(str == KEY_CN){
|
||||
shiftkeyboard(2);
|
||||
for(int j = 0; j < KEY_NUM; j ++){
|
||||
if(m_btn[j]->text() == KEY_CN){
|
||||
m_btn[j]->setText(KEY_EN);
|
||||
}
|
||||
}
|
||||
setInputMethodCn(true);
|
||||
}else if(str == KEY_EN){
|
||||
for(int j = 0; j < KEY_NUM; j ++){
|
||||
if(m_btn[j]->text() == KEY_EN){
|
||||
m_btn[j]->setText(KEY_CN);
|
||||
}
|
||||
}
|
||||
setInputMethodCn(false);
|
||||
}else if(str == KEY_HIDE){
|
||||
slotClose();
|
||||
}else if(str == KEY_SYMBOL){
|
||||
shiftkeyboard(1);
|
||||
}else if(str == KEY_SYMBOL_BACK){
|
||||
shiftkeyboard(2);
|
||||
}else{
|
||||
if(str == KEY_SPACE)
|
||||
str = " ";
|
||||
else if (str == "&&") {
|
||||
str = "&";
|
||||
}
|
||||
event = new QKeyEvent(QEvent::KeyPress, 0, Qt::NoModifier, str);
|
||||
}
|
||||
|
||||
if(isInputMethodCn){
|
||||
if(str >= "a" && str <= "z"){ //qt5.5 does not have isLower() func
|
||||
m_editCn->setText(m_editCn->text() + str);
|
||||
matching(m_editCn->text());
|
||||
}else if (str == KEY_BACKSPACE) {
|
||||
if("" != m_editCn->text()){
|
||||
m_editCn->setText(m_editCn->text().remove(m_editCn->text().length() - 1, 1));
|
||||
matching(m_editCn->text());
|
||||
}else{
|
||||
QApplication::sendEvent(m_receiver, new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier));
|
||||
}
|
||||
}else {
|
||||
if(nullptr != event){
|
||||
QApplication::sendEvent(m_receiver, event);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(nullptr != event){
|
||||
QApplication::sendEvent(m_receiver, event);
|
||||
}
|
||||
}
|
||||
static_cast<QWidget*>(m_receiver)->setFocus();
|
||||
}
|
||||
|
||||
|
||||
void keyboard::popup(const int posToBottom)
|
||||
{
|
||||
qDebug() << "keyboard popup";
|
||||
show();
|
||||
move(0, UiConfig::GetInstance()->getUiHeight() - height() - posToBottom);
|
||||
#if 0
|
||||
qDebug() << "child: " << children().size();
|
||||
QObjectList& childList = const_cast<QObjectList&>(children());
|
||||
childList.clear();
|
||||
qDebug() << "****************child: " << children().size();
|
||||
#endif
|
||||
}
|
||||
|
||||
void keyboard::matching(const QString& userInput)
|
||||
{
|
||||
//qDebug() << "input:" << userInput;
|
||||
QList<QString> list = m_pinyinMap->values(userInput);
|
||||
int foundQty = list.size();
|
||||
//qDebug() << "list:" << foundQty;
|
||||
m_pinyinList.clear();
|
||||
#if 0
|
||||
for (QList<QString>::const_reverse_iterator itr = list.rbegin(); itr != list.rend(); ++itr){
|
||||
m_pinyinList.append(*itr);
|
||||
}
|
||||
#else
|
||||
for(int i=0; i<foundQty; i++){
|
||||
m_pinyinList.append(list.takeLast());
|
||||
}
|
||||
#endif
|
||||
//for(auto &str : m_pinyinList)
|
||||
//qDebug() << "-------:" << str;
|
||||
changePage(0);
|
||||
m_iCddPageIndex = 0;
|
||||
}
|
||||
|
||||
void keyboard::changePage(int index)
|
||||
{
|
||||
for(auto &b : m_btnsCnCdd){
|
||||
b->hide();
|
||||
}
|
||||
|
||||
const int matchQty = m_pinyinList.size();
|
||||
//qDebug() << "matchQty:" << matchQty;
|
||||
if(matchQty){
|
||||
const int btnQty = m_btnsCnCdd.size();
|
||||
const int showQty = matchQty - (index * btnQty) > btnQty ? btnQty : matchQty - (index * btnQty);
|
||||
for(int i=0; i<showQty; i++)
|
||||
{
|
||||
if(m_btnsCnCdd.at(i)->isHidden()){
|
||||
m_btnsCnCdd.at(i)->show();
|
||||
}
|
||||
m_btnsCnCdd.at(i)->setText(m_pinyinList.value(i + index * btnQty));
|
||||
//qDebug() << "word:" << m_pinyinList.value(i + index * btnQty);
|
||||
}
|
||||
|
||||
m_btnCnPrePage->show();
|
||||
m_btnCnNextPage->show();
|
||||
m_btnCnPrePage->setEnabled(0 != index);
|
||||
m_btnCnNextPage->setEnabled( (showQty == btnQty) && (matchQty - ((index + 1) * btnQty)) );
|
||||
}
|
||||
else {
|
||||
m_btnCnPrePage->hide();
|
||||
m_btnCnNextPage->hide();
|
||||
}
|
||||
}
|
||||
|
||||
void keyboard::setReceiver(QObject* receiver)
|
||||
{
|
||||
if(nullptr != receiver){
|
||||
if(m_receiver){
|
||||
disconnect(this, SIGNAL(signalWordChoose(QString)), m_receiver, SLOT(slotWordChoose(QString)));
|
||||
}
|
||||
m_receiver = receiver;
|
||||
connect(this, SIGNAL(signalWordChoose(QString)), m_receiver, SLOT(slotWordChoose(QString)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QObject* keyboard::receiver() const
|
||||
{
|
||||
return m_receiver;
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
#ifndef KEYBOARD_H
|
||||
#define KEYBOARD_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QDialog>
|
||||
#include <QLabel>
|
||||
|
||||
//chinese support
|
||||
#include <QFile>
|
||||
#include <QMultiMap>
|
||||
#include <QLineEdit>
|
||||
#include <QMutex>
|
||||
|
||||
class keyboard : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
typedef enum
|
||||
{
|
||||
enKeyboardNotGen,
|
||||
enKeyboardCreating,
|
||||
enKeyboardCreated
|
||||
}enKeyboardStatus;
|
||||
|
||||
static const int KEYS_QUANTITY_MAX = 60;
|
||||
static const int SPACE = 5;
|
||||
static const int ROW_NUM = 6;
|
||||
|
||||
static keyboard* GetInstance(QWidget *parent);
|
||||
static void preLoad();
|
||||
static void close();
|
||||
|
||||
~keyboard();
|
||||
void popup(const int posToBottom = 0);
|
||||
|
||||
signals:
|
||||
void signalWordChoose(QString word);
|
||||
|
||||
public slots:
|
||||
void slotBtnClicked();
|
||||
void slotBtnPressed();
|
||||
void slotBtnReleased();
|
||||
void slotPageTurnBtnClicked();
|
||||
void slotCandidateBtnClicked();
|
||||
void slotClose();
|
||||
void slotTimer();
|
||||
|
||||
private:
|
||||
static keyboard* m_instance;
|
||||
QObject* m_receiver;
|
||||
static enKeyboardStatus m_status;
|
||||
|
||||
QPushButton* m_btn[KEYS_QUANTITY_MAX];
|
||||
//chinese support
|
||||
QVector<QPushButton*> m_btnsCnCdd;
|
||||
QLineEdit* m_editCn;
|
||||
QPushButton* m_btnCnPrePage;
|
||||
QPushButton* m_btnCnNextPage;
|
||||
|
||||
static QFile* m_pinyinFile;
|
||||
static QRegExp* m_regExp;
|
||||
static QMultiMap<QString, QString>* m_pinyinMap;
|
||||
|
||||
bool isInputMethodCn;
|
||||
int m_iCddPageIndex;
|
||||
QList<QString> m_pinyinList;
|
||||
|
||||
QLabel* m_labelTip;
|
||||
QTimer* m_timer;
|
||||
QPushButton* m_curPressedKey;
|
||||
|
||||
explicit keyboard(QWidget *parent = nullptr);
|
||||
void setInputMethodCn(bool setCn);
|
||||
void matching(const QString& userInput);
|
||||
void changePage(int index);
|
||||
void setReceiver(QObject*);
|
||||
QObject* receiver() const;
|
||||
|
||||
void shiftkeyboard(int caps);
|
||||
void paintEvent(QPaintEvent *event);
|
||||
void keyPress(const QPushButton* btn);
|
||||
};
|
||||
|
||||
#endif // KEYBOARD_H
|
148
Linguist/res.qrc
148
Linguist/res.qrc
@ -1,148 +0,0 @@
|
||||
<RCC>
|
||||
<qresource prefix="/res">
|
||||
<file>image/EditIcon.png</file>
|
||||
<file>image/ProjectSet_AddSet.png</file>
|
||||
<file>image/ProjectSet_DeviceSet.png</file>
|
||||
<file>image/ProjectSet_IdentySet.png</file>
|
||||
<file>image/ProjectSet_Intenet.png</file>
|
||||
<file>image/ProjectSet_LocalFaceDb.png</file>
|
||||
<file>image/ProjectSet_NetSet.png</file>
|
||||
<file>image/ProjectSet_PhotoSet.png</file>
|
||||
<file>image/ProjectSet_SmartSet.png</file>
|
||||
<file>image/ProjectSet_SysSet.png</file>
|
||||
<file>image/on.png</file>
|
||||
<file>image/select_1.png</file>
|
||||
<file>image/select_2.png</file>
|
||||
<file>image/bright.png</file>
|
||||
<file>image/dark.png</file>
|
||||
<file>image/off.png</file>
|
||||
<file>image/SmartGate_Del.png</file>
|
||||
<file>image/SmartGate_Add.png</file>
|
||||
<file>image/disconnect.png</file>
|
||||
<file>image/display.png</file>
|
||||
<file>image/wifi-disconnect.png</file>
|
||||
<file>image/eye-close.png</file>
|
||||
<file>image/eye-open.png</file>
|
||||
<file>image/volumn-down.png</file>
|
||||
<file>image/volumn-up.png</file>
|
||||
<file>image/logo.png</file>
|
||||
<file>image/green_mask.png</file>
|
||||
<file>image/msg_box_bg_blue.png</file>
|
||||
<file>image/msg_box_bg_red.png</file>
|
||||
<file>image/red_mask.png</file>
|
||||
<file>image/network-middle.png</file>
|
||||
<file>image/network-small.png</file>
|
||||
<file>image/no-network-middle.png</file>
|
||||
<file>image/no-network-small.png</file>
|
||||
<file>image/blue-600-1024.png</file>
|
||||
<file>image/blue-800-1280.png</file>
|
||||
<file>image/green-600-1024.png</file>
|
||||
<file>image/green-800-1280.png</file>
|
||||
<file>image/pagePre.png</file>
|
||||
<file>image/red-600-1024.png</file>
|
||||
<file>image/scan-line-middle.png</file>
|
||||
<file>image/scan-line-small.png</file>
|
||||
<file>image/screensaver-600-1024.jpg</file>
|
||||
<file>image/wifi-tran.png</file>
|
||||
<file>image/msg_box_bg_green.png</file>
|
||||
<file>image/msg_box_bg_yellow.png</file>
|
||||
<file>image/QRCode-win.png</file>
|
||||
<file>image/red-800-1280.png</file>
|
||||
<file>image/msg_box_bg_blue_middle.png</file>
|
||||
<file>image/msg_box_bg_red_middle.png</file>
|
||||
<file>image/4G.png</file>
|
||||
<file>image/screensaver-800-1280.jpg</file>
|
||||
<file>image/SmartGate_scanFail.png</file>
|
||||
<file>image/SmartGate_scanOk.png</file>
|
||||
<file>image/start-600-1024.jpg</file>
|
||||
<file>image/start-800-1280.jpg</file>
|
||||
<file>image/blue-bom-small.png</file>
|
||||
<file>image/face-small.png</file>
|
||||
<file>image/green-bom-small.png</file>
|
||||
<file>image/green-top-small.png</file>
|
||||
<file>image/red-bom-small.png</file>
|
||||
<file>image/red-top-small.png</file>
|
||||
<file>image/blue-bom-middle.png</file>
|
||||
<file>image/green-bom-middle.png</file>
|
||||
<file>image/green-top-middle.png</file>
|
||||
<file>image/red-bom-middle.png</file>
|
||||
<file>image/red-top-middle.png</file>
|
||||
<file>image/wifi-blue.png</file>
|
||||
<file>image/logo_middle.png</file>
|
||||
<file>image/logo_small.png</file>
|
||||
<file>image/logo2.png</file>
|
||||
<file>image/calibration_box_middle.png</file>
|
||||
<file>image/calibration_box_small.png</file>
|
||||
<file>image/haiman-face-middle.png</file>
|
||||
<file>image/network-connected-middle.png</file>
|
||||
<file>image/network-connected-small.png</file>
|
||||
<file>image/start-720-1280.jpg</file>
|
||||
<file>image/screensaver-720-1280.jpg</file>
|
||||
<file>image/jinggong-face-middle.png</file>
|
||||
<file>image/dark_fill_light_5inch.png</file>
|
||||
<file>image/dark_fill_light_8inch.png</file>
|
||||
<file>image/ProjectSetCheckInfo.png</file>
|
||||
<file>image/ProjectSetDevMng.png</file>
|
||||
<file>image/ProjectSetReco.png</file>
|
||||
<file>image/ProjectSetSysMng.png</file>
|
||||
<file>image/pageNext.png</file>
|
||||
<file>image/ProjectSet_return.png</file>
|
||||
<file>inputCn/pinyin-utf8</file>
|
||||
<file>image/button.png</file>
|
||||
<file>image/figure_gray.png</file>
|
||||
<file>image/home_logo.png</file>
|
||||
<file>image/home_mask_top.png</file>
|
||||
<file>image/NetrualLOGO.png</file>
|
||||
<file>image/open.png</file>
|
||||
<file>image/ProjectSetAccMng.png</file>
|
||||
<file>image/ProjectSetFaceMng.png</file>
|
||||
<file>image/right.png</file>
|
||||
<file>image/screensaver.jpg</file>
|
||||
<file>image/screensaver-1024-600.jpg</file>
|
||||
<file>image/SmartGare_Ok.png</file>
|
||||
<file>image/SmartGate_No.png</file>
|
||||
<file>image/SmartGate_ProjectSet.jpg</file>
|
||||
<file>image/SmartGate_unauthorized.png</file>
|
||||
<file>image/start.jpg</file>
|
||||
<file>image/start_logo.jpg</file>
|
||||
<file>image/start_logo.png</file>
|
||||
<file>image/start_logo-big.jpg</file>
|
||||
<file>image/unauthorized.png</file>
|
||||
<file>image/Wifi.png</file>
|
||||
<file>image/wifi2.png</file>
|
||||
<file>image/close.png</file>
|
||||
<file>image/down.png</file>
|
||||
<file>image/left.png</file>
|
||||
<file>image/Search_Field.png</file>
|
||||
<file>image/up.png</file>
|
||||
<file>image/search.png</file>
|
||||
<file>image/center_msg_600_1024.png</file>
|
||||
<file>image/center_msg_720_1280.png</file>
|
||||
<file>image/center_msg_800_1280.png</file>
|
||||
<file>image/jinggong-face-middle-a038.png</file>
|
||||
<file>image/pwd_back_large.png</file>
|
||||
<file>image/pwd_back_middle.png</file>
|
||||
<file>image/pwd_back_small.png</file>
|
||||
<file>image/pwd_bg_large.png</file>
|
||||
<file>image/pwd_bg_middle.png</file>
|
||||
<file>image/pwd_bg_small.png</file>
|
||||
<file>image/pwd_confirm_large.png</file>
|
||||
<file>image/pwd_confirm_middle.png</file>
|
||||
<file>image/pwd_confirm_small.png</file>
|
||||
<file>image/pwd_del_large.png</file>
|
||||
<file>image/pwd_del_middle.png</file>
|
||||
<file>image/pwd_del_small.png</file>
|
||||
<file>image/pwd_large.png</file>
|
||||
<file>image/pwd_large_pressed.png</file>
|
||||
<file>image/pwd_middle.png</file>
|
||||
<file>image/pwd_middle_pressed.png</file>
|
||||
<file>image/pwd_small.png</file>
|
||||
<file>image/pwd_small_pressed.png</file>
|
||||
<file>image/num_btn_large.png</file>
|
||||
<file>image/num_btn_middle.png</file>
|
||||
<file>image/num_btn_small.png</file>
|
||||
<file>image/pwd_confirm_large_disable.png</file>
|
||||
<file>image/pwd_confirm_middle_disable.png</file>
|
||||
<file>image/pwd_confirm_small_disable.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
33
resources/提示语.md
Normal file
33
resources/提示语.md
Normal file
@ -0,0 +1,33 @@
|
||||
| | 中文 | 英文 |
|
||||
| -------------------- | ------------------------------- | ----------------------------- |
|
||||
| 请输入密码 | inputPasswordPls.wav | en_inputPasswordPls.wav |
|
||||
| 非巡更时段 | patrolNotRightTime.wav | × |
|
||||
| 巡更成功 | patrolOk.wav | × |
|
||||
| 请摘下口罩 | pleaseTakeOffMask.wav | en_pleaseTakeOffMask.wav |
|
||||
| 请扫粤居码或刷身份证 | plsScanYuejumaOrSwipeIdCard.wav | × |
|
||||
| 请扫粤居码 | plsScanYuejuma.wav | × |
|
||||
| 请扫健康码 | showHealthCode.wav | × |
|
||||
| 行程卡已过期 | tripCardOverdue.wav | × |
|
||||
| 请刷身份证和行程卡 | × | × |
|
||||
| 请重刷行程卡 | reSwipeTripCard.wav | × |
|
||||
| 途径中高风险地区 | midOrHighRiskArea.wav | × |
|
||||
| 请刷行程卡 | swipeTripCard.wav | × |
|
||||
| 请刷身份证或扫码 | swipeIdCardOrQrcodePls.wav | en_swipeIdCardOrQrcodePls.wav |
|
||||
| 静电测试异常 | staticAbnormal.wav | × |
|
||||
| 请测试静电 | plsCheckStatic.wav | × |
|
||||
| 请刷身份证 | pleaseTapIdCard.wav | en_pleaseTapIdCard.wav |
|
||||
| 未授权卡片 | unauthorizedCard.wav | en_unauthorizedCard.wav |
|
||||
| 密码错误 | passwordError.wav | en_passwordError.wav |
|
||||
| 身份核验失败 | idAuthFail.wav | en_idAuthFail.wav |
|
||||
| 请刷卡 | pleaseTapYourCard.wav | en_pleaseTapYourCard.wav |
|
||||
| 请用本人证件 | pleasePresentYourOwnID.wav | en_pleasePresentYourOwnID.wav |
|
||||
| 请正视镜头 | pleaseFaceTheCamera.wav | en_pleaseFaceTheCamera.wav |
|
||||
| 禁止通行时段 | noEntryPeriod.wav | en_noEntryPeriod.wav |
|
||||
| 未经许可人员 | unauthorizedPersonnel.wav | en_unauthorizedPersonnel.wav |
|
||||
| 请靠近测温 | pleaseTryTestTemp.wav | x |
|
||||
| 体温正常 | tempNormal.wav | x |
|
||||
| 体温异常 | tempAbnormal.wav | x |
|
||||
| 请佩戴口罩 | pleaseWearMask.wav | en_pleaseWearMask.wav |
|
||||
| 请通行 | welcome.wav | en_welcome.wav |
|
||||
| 门已开,请通行 | doorOpenedPleasePass.wav | en_doorOpenedPleasePass.wav |
|
||||
|
Loading…
Reference in New Issue
Block a user