Commit 75083656 by xiaoqing.gu

1、登录界面增加键盘功能 英文字母(大小写) 2、添加键盘图标(未使用) 【书亦烧仙草版本】

parent a879ae35
...@@ -52,5 +52,6 @@ ...@@ -52,5 +52,6 @@
<file>shift_on.png</file> <file>shift_on.png</file>
<file>driver.png</file> <file>driver.png</file>
<file>loginlogin_back.png</file> <file>loginlogin_back.png</file>
<file>keyboard.png</file>
</qresource> </qresource>
</RCC> </RCC>
\ No newline at end of file
...@@ -66,6 +66,7 @@ ...@@ -66,6 +66,7 @@
#define INI_AUTOCONFIRM "info/autoconfirm" #define INI_AUTOCONFIRM "info/autoconfirm"
#define INI_REMEMBERPWD "info/rememberPwd" #define INI_REMEMBERPWD "info/rememberPwd"
#define INI_AUTOLOGIN "info/autologin" #define INI_AUTOLOGIN "info/autologin"
#define INI_SOFTKEYBOARD "info/softkeyboard"
#define INI_UIVISIBLE "Ui/visible" #define INI_UIVISIBLE "Ui/visible"
#define INI_DELEORDERTIMER "all/dltordertimer" #define INI_DELEORDERTIMER "all/dltordertimer"
......
...@@ -86,7 +86,8 @@ SOURCES += \ ...@@ -86,7 +86,8 @@ SOURCES += \
$$PWD/view/newchangeshiftsform.cpp \ $$PWD/view/newchangeshiftsform.cpp \
$$PWD/base/Arithmetic/cretopt.cpp \ $$PWD/base/Arithmetic/cretopt.cpp \
$$PWD/control/driverinfogetwork.cpp \ $$PWD/control/driverinfogetwork.cpp \
$$PWD/view/newfloatform.cpp $$PWD/view/newfloatform.cpp \
view/frminput.cpp
HEADERS += \ HEADERS += \
$$PWD/event/fmapplication.h \ $$PWD/event/fmapplication.h \
...@@ -146,7 +147,8 @@ HEADERS += \ ...@@ -146,7 +147,8 @@ HEADERS += \
$$PWD/model/prtmodelpool.h \ $$PWD/model/prtmodelpool.h \
$$PWD/view/newchangeshiftsform.h \ $$PWD/view/newchangeshiftsform.h \
$$PWD/control/driverinfogetwork.h \ $$PWD/control/driverinfogetwork.h \
$$PWD/view/newfloatform.h $$PWD/view/newfloatform.h \
view/frminput.h
DISTFILES += $$PWD/takeout.rc DISTFILES += $$PWD/takeout.rc
...@@ -171,7 +173,8 @@ FORMS += \ ...@@ -171,7 +173,8 @@ FORMS += \
$$PWD/view/newpickupform.ui \ $$PWD/view/newpickupform.ui \
$$PWD/view/newchangeshiftsform.ui \ $$PWD/view/newchangeshiftsform.ui \
$$PWD/view/newfloatform.ui \ $$PWD/view/newfloatform.ui \
$$PWD/view/newloginform.ui $$PWD/view/newloginform.ui \
view/frminput.ui
CONFIG(release, debug|release){ CONFIG(release, debug|release){
QMAKE_LFLAGS += /DEBUG QMAKE_LFLAGS += /DEBUG
......
#ifndef FRMINPUT_H
#define FRMINPUT_H
#include <QWidget>
#include <QMouseEvent>
#include <QLabel>
#include <QLineEdit>
#include <QComboBox>
#include <QTextEdit>
#include <QPlainTextEdit>
#include <QTextBrowser>
#include <QtSql>
#include <QPushButton>
#include <QTimer>
namespace Ui
{
class frmInput;
}
class frmInput : public QWidget
{
Q_OBJECT
public:
explicit frmInput(QWidget *parent = 0);
~frmInput();
//单例模式,保证一个程序只存在一个输入法实例对象
static frmInput *Instance() {
if (!_instance) {
_instance = new frmInput;
}
return _instance;
}
//初始化面板状态,包括字体大小
void Init(QString position, QString style, int btnFontSize, int labFontSize);
public slots:
//焦点改变事件槽函数处理
void focusChanged(QWidget *oldWidget, QWidget *nowWidget);
void nowFocus(QWidget* widget);
protected:
//事件过滤器,处理鼠标在汉字标签处单击操作
bool eventFilter(QObject *obj, QEvent *event);
//鼠标拖动事件
void mouseMoveEvent(QMouseEvent *e);
//鼠标按下事件
void mousePressEvent(QMouseEvent *e);
//鼠标松开事件
void mouseReleaseEvent(QMouseEvent *);
private slots:
//输入法面板按键处理
void btn_clicked();
//改变输入法面板样式
void changeStyle(QString topColor, QString bottomColor,
QString borderColor, QString textColor);
//定时器处理退格键
void reClicked();
private:
Ui::frmInput *ui;
static frmInput *_instance; //实例对象
int deskWidth; //桌面宽度
int deskHeight; //桌面高度
int frmWidth; //窗体宽度
int frmHeight; //窗体高度
QPoint mousePoint; //鼠标拖动自定义标题栏时的坐标
bool mousePressed; //鼠标是否按下
bool isPress; //是否长按退格键
QPushButton *btnPress; //长按按钮
QTimer *timerPress; //退格键定时器
bool checkPress(); //校验当前长按的按钮
bool isFirst; //是否首次加载
void InitForm(); //初始化窗体数据
void InitProperty(); //初始化属性
void ChangeStyle(); //改变样式
void ChangeFont(); //改变字体大小
void ShowPanel(); //显示输入法面板
QWidget *currentWidget; //当前焦点的对象
QLineEdit *currentLineEdit; //当前焦点的单行文本框
QTextEdit *currentTextEdit; //当前焦点的多行文本框
QPlainTextEdit *currentPlain; //当前焦点的富文本框
QTextBrowser *currentBrowser; //当前焦点的文本浏览框
QString currentEditType; //当前焦点控件的类型
QString currentPosition; //当前输入法面板位置类型
QString currentStyle; //当前输入法面板样式
int btnFontSize; //当前输入法面板按钮字体大小
int labFontSize; //当前输入法面板标签字体大小
void insertValue(QString value);//插入值到当前焦点控件
void deleteValue(); //删除当前焦点控件的一个字符
QString currentType; //当前输入法类型
void changeType(QString type); //改变输入法类型
void changeLetter(bool isUpper);//改变字母大小写
QList<QLabel *>labCh; //汉字标签数组
QStringList allPY; //所有拼音链表
QStringList currentPY; //当前拼音链表
int currentPY_index; //当前拼音索引
int currentPY_count; //当前拼音数量
void selectChinese(); //查询汉字
void showChinese(); //显示查询到的汉字
void setChinese(int index); //设置当前汉字
void clearChinese(); //清空当前汉字信息
};
#endif // FRMINPUT_H
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "event/fmapplication.h" #include "event/fmapplication.h"
#include "preDefine.h" #include "preDefine.h"
#include "view/frminput.h"
#include <QDebug> #include <QDebug>
#include <QVariantMap> #include <QVariantMap>
...@@ -23,6 +24,8 @@ NewLoginForm::NewLoginForm(QWidget *parent) : ...@@ -23,6 +24,8 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
ui->label_logotitle_2->setText(QString::fromLocal8Bit("非码SaaS点餐小程序门店管理")); ui->label_logotitle_2->setText(QString::fromLocal8Bit("非码SaaS点餐小程序门店管理"));
frmInput::Instance()->Init("control", "black", 10, 10);
connect(ui->lineEdit_account_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit); connect(ui->lineEdit_account_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_partnerid_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit); connect(ui->lineEdit_partnerid_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_pwd_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit); connect(ui->lineEdit_pwd_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
...@@ -54,10 +57,14 @@ NewLoginForm::NewLoginForm(QWidget *parent) : ...@@ -54,10 +57,14 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
connect(ui->pushButton_num9, &QPushButton::clicked, this, &NewLoginForm::number_btn_click); connect(ui->pushButton_num9, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_clearBtn, &QPushButton::clicked, this, &NewLoginForm::number_btn_click); connect(ui->pushButton_clearBtn, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_delBtn, &QPushButton::clicked, this, &NewLoginForm::number_btn_click); connect(ui->pushButton_delBtn, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(this, &NewLoginForm::focusChanged, frmInput::Instance(),&frmInput::focusChanged);
connect(this, &NewLoginForm::nowFocus, frmInput::Instance(),&frmInput::nowFocus);
_curr_lineedit = ui->lineEdit_partnerid_2; _curr_lineedit = ui->lineEdit_partnerid_2;
_curr_lineedit->setFocus(); _curr_lineedit->setFocus();
//frmInput::Instance()->focusChanged(this, _curr_lineedit);
setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(Qt::FramelessWindowHint);
...@@ -66,15 +73,23 @@ NewLoginForm::NewLoginForm(QWidget *parent) : ...@@ -66,15 +73,23 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME; QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME;
m_autologin = QSettings(configfile, QSettings::IniFormat).value(INI_AUTOLOGIN, 0).toInt(); m_autologin = QSettings(configfile, QSettings::IniFormat).value(INI_AUTOLOGIN, 0).toInt();
m_rememberPwd = QSettings(configfile, QSettings::IniFormat).value(INI_REMEMBERPWD, 0).toInt(); m_rememberPwd = QSettings(configfile, QSettings::IniFormat).value(INI_REMEMBERPWD, 0).toInt();
m_softkeyboard = QSettings(configfile, QSettings::IniFormat).value(INI_SOFTKEYBOARD, 0).toInt();
if(m_autologin) if(m_autologin)
ui->checkBox_2->setChecked(true); ui->checkBox_2->setChecked(true);
if(m_rememberPwd) if(m_rememberPwd)
ui->checkBox_rememberPwd->setChecked(true); ui->checkBox_rememberPwd->setChecked(true);
if(m_softkeyboard)
emit nowFocus(ui->lineEdit_partnerid_2);
FMApplication::subscibeEvent(this, PosEvent::s_login_status); FMApplication::subscibeEvent(this, PosEvent::s_login_status);
FMApplication::subscibeEvent(this, PosEvent::s_opt_status); FMApplication::subscibeEvent(this, PosEvent::s_opt_status);
FMApplication::subscibeEvent(this, PosEvent::s_show_login); FMApplication::subscibeEvent(this, PosEvent::s_show_login);
ui->lineEdit_partnerid_2->installEventFilter(this);
ui->lineEdit_account_2->installEventFilter(this);
ui->lineEdit_pwd_2->installEventFilter(this);
ui->lineEdit_storeid_2->installEventFilter(this);
} }
void NewLoginForm::onHideAlert() void NewLoginForm::onHideAlert()
...@@ -209,9 +224,31 @@ void NewLoginForm::keyPressEvent(QKeyEvent *e) ...@@ -209,9 +224,31 @@ void NewLoginForm::keyPressEvent(QKeyEvent *e)
void NewLoginForm::GetCurrLineEdit() void NewLoginForm::GetCurrLineEdit()
{ {
if(m_softkeyboard)
{
// emit focusChanged(_curr_lineedit, qobject_cast<ClickedLineEdit*>(sender()));
//发送焦点在哪个位置的行编辑器的信号
emit nowFocus(qobject_cast<ClickedLineEdit*>(sender()));
}
qDebug() << qobject_cast<ClickedLineEdit*>(sender());
qDebug() << _curr_lineedit;
_curr_lineedit = qobject_cast<ClickedLineEdit*>(sender()); _curr_lineedit = qobject_cast<ClickedLineEdit*>(sender());
} }
//bool NewLoginForm::eventFilter(QObject *watched, QEvent *e)
//{
// if(watched == ui->lineEdit_partnerid_2)
// {
// if(e->type() == QEvent::FocusIn)
// {
// frmInput::Instance()->Init("control", "black", 10, 10);
// return true;
// }
// }
// return QWidget::eventFilter(watched,e);
//}
void NewLoginForm::on_pushButton_login_2_clicked() void NewLoginForm::on_pushButton_login_2_clicked()
{ {
QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME; QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME;
...@@ -277,7 +314,12 @@ void NewLoginForm::number_btn_click() ...@@ -277,7 +314,12 @@ void NewLoginForm::number_btn_click()
// if(btn == ui->pushButton_clear_2) // if(btn == ui->pushButton_clear_2)
if(btn == ui->pushButton_clearBtn) if(btn == ui->pushButton_clearBtn)
{ {
_curr_lineedit->clear(); // _curr_lineedit->clear();
//将清空按钮换成软键盘按钮
if(m_softkeyboard)
{
emit focusChanged(ui->lineEdit_partnerid_2, ui->lineEdit_pwd_2);
}
} }
// else if(btn == ui->pushButton_del_2) // else if(btn == ui->pushButton_del_2)
else if(btn == ui->pushButton_delBtn) else if(btn == ui->pushButton_delBtn)
...@@ -299,5 +341,6 @@ void NewLoginForm::on_pushButton_close_clicked() ...@@ -299,5 +341,6 @@ void NewLoginForm::on_pushButton_close_clicked()
this->hide(); this->hide();
//emit showfloat(); //emit showfloat();
DEFAULTPOSTEVENT(PosEvent::s_show_float, ""); DEFAULTPOSTEVENT(PosEvent::s_show_float, "");
frmInput::Instance()->hide();
} }
...@@ -30,15 +30,18 @@ signals: ...@@ -30,15 +30,18 @@ signals:
void showfloat(); void showfloat();
void showmainform(); void showmainform();
void login(QVariantMap storeinfo); void login(QVariantMap storeinfo);
void focusChanged(QWidget* oldWidget, QWidget* widget);
void nowFocus(QWidget* widget);
public slots: public slots:
void GetCurrLineEdit(); void GetCurrLineEdit();
//bool eventFilter(QObject *watched, QEvent *e);
private slots: private slots:
void on_pushButton_login_2_clicked(); void on_pushButton_login_2_clicked();
void number_btn_click(); void number_btn_click();
void SetStoreInfo(); void SetStoreInfo();
void on_pushButton_close_clicked(); void on_pushButton_close_clicked();
private: private:
Ui::NewLoginForm *ui; Ui::NewLoginForm *ui;
...@@ -54,6 +57,9 @@ private: ...@@ -54,6 +57,9 @@ private:
//记住密码标志位 //记住密码标志位
int m_rememberPwd; int m_rememberPwd;
//是否需要软键盘标志位
int m_softkeyboard;
}; };
#endif // NEWLOGINFORM_H #endif // NEWLOGINFORM_H
...@@ -97,6 +97,7 @@ ...@@ -97,6 +97,7 @@
color: #000000; color: #000000;
background-color: #ffffff; background-color: #ffffff;
border: 1px solid #D9D9D9; border: 1px solid #D9D9D9;
/*background-image:url(:keyboard.png);*/
} }
#pushButton_close #pushButton_close
{ {
...@@ -847,7 +848,13 @@ ...@@ -847,7 +848,13 @@
<enum>Qt::NoFocus</enum> <enum>Qt::NoFocus</enum>
</property> </property>
<property name="text"> <property name="text">
<string>清空</string> <string>键盘</string>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property> </property>
</widget> </widget>
</item> </item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment