Commit 75083656 by xiaoqing.gu

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

parent a879ae35
......@@ -52,5 +52,6 @@
<file>shift_on.png</file>
<file>driver.png</file>
<file>loginlogin_back.png</file>
<file>keyboard.png</file>
</qresource>
</RCC>
\ No newline at end of file
......@@ -66,6 +66,7 @@
#define INI_AUTOCONFIRM "info/autoconfirm"
#define INI_REMEMBERPWD "info/rememberPwd"
#define INI_AUTOLOGIN "info/autologin"
#define INI_SOFTKEYBOARD "info/softkeyboard"
#define INI_UIVISIBLE "Ui/visible"
#define INI_DELEORDERTIMER "all/dltordertimer"
......
......@@ -86,7 +86,8 @@ SOURCES += \
$$PWD/view/newchangeshiftsform.cpp \
$$PWD/base/Arithmetic/cretopt.cpp \
$$PWD/control/driverinfogetwork.cpp \
$$PWD/view/newfloatform.cpp
$$PWD/view/newfloatform.cpp \
view/frminput.cpp
HEADERS += \
$$PWD/event/fmapplication.h \
......@@ -146,7 +147,8 @@ HEADERS += \
$$PWD/model/prtmodelpool.h \
$$PWD/view/newchangeshiftsform.h \
$$PWD/control/driverinfogetwork.h \
$$PWD/view/newfloatform.h
$$PWD/view/newfloatform.h \
view/frminput.h
DISTFILES += $$PWD/takeout.rc
......@@ -171,7 +173,8 @@ FORMS += \
$$PWD/view/newpickupform.ui \
$$PWD/view/newchangeshiftsform.ui \
$$PWD/view/newfloatform.ui \
$$PWD/view/newloginform.ui
$$PWD/view/newloginform.ui \
view/frminput.ui
CONFIG(release, debug|release){
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 @@
#include "event/fmapplication.h"
#include "preDefine.h"
#include "view/frminput.h"
#include <QDebug>
#include <QVariantMap>
......@@ -23,6 +24,8 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
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_partnerid_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_pwd_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
......@@ -54,10 +57,14 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
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_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->setFocus();
//frmInput::Instance()->focusChanged(this, _curr_lineedit);
setWindowFlags(Qt::FramelessWindowHint);
......@@ -66,15 +73,23 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME;
m_autologin = QSettings(configfile, QSettings::IniFormat).value(INI_AUTOLOGIN, 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)
ui->checkBox_2->setChecked(true);
if(m_rememberPwd)
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_opt_status);
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()
......@@ -209,9 +224,31 @@ void NewLoginForm::keyPressEvent(QKeyEvent *e)
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());
}
//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()
{
QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME;
......@@ -277,7 +314,12 @@ void NewLoginForm::number_btn_click()
// if(btn == ui->pushButton_clear_2)
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_delBtn)
......@@ -299,5 +341,6 @@ void NewLoginForm::on_pushButton_close_clicked()
this->hide();
//emit showfloat();
DEFAULTPOSTEVENT(PosEvent::s_show_float, "");
frmInput::Instance()->hide();
}
......@@ -30,15 +30,18 @@ signals:
void showfloat();
void showmainform();
void login(QVariantMap storeinfo);
void focusChanged(QWidget* oldWidget, QWidget* widget);
void nowFocus(QWidget* widget);
public slots:
void GetCurrLineEdit();
//bool eventFilter(QObject *watched, QEvent *e);
private slots:
void on_pushButton_login_2_clicked();
void number_btn_click();
void SetStoreInfo();
void on_pushButton_close_clicked();
private:
Ui::NewLoginForm *ui;
......@@ -54,6 +57,9 @@ private:
//记住密码标志位
int m_rememberPwd;
//是否需要软键盘标志位
int m_softkeyboard;
};
#endif // NEWLOGINFORM_H
......@@ -97,6 +97,7 @@
color: #000000;
background-color: #ffffff;
border: 1px solid #D9D9D9;
/*background-image:url(:keyboard.png);*/
}
#pushButton_close
{
......@@ -847,7 +848,13 @@
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>清空</string>
<string>键盘</string>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
</widget>
</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