Qt之软键盘制作(没有中文输入法)

头文件

#pragma once

#include "ui_KeyBoard.h"
#include <QWidget>

class QStackedWidget;
class QLabel;
class QLineEdit;
class QPushButton;
class QComboBox;

// 按钮的边长,键盘总长度=14*BTN_SIZE,键盘总宽度=3*BTN_SIZE
#define BTN_SIZE    40

class KeyBoard : public QWidget
{
	Q_OBJECT
public:
	explicit KeyBoard(QWidget *parent = 0);
	~KeyBoard();

protected:
	void mouseMoveEvent(QMouseEvent *e);
	void mousePressEvent(QMouseEvent *e);
	void mouseReleaseEvent(QMouseEvent *);

private slots:
	void focusChanged(QWidget *, QWidget *nowWidget);
	void slotBtnClicked();         // 按键处理

private:
	int deskWidth;                  //桌面宽度
	int deskHeight;                 //桌面高度
	int frmWidth;                   //窗体宽度
	int frmHeight;                  //窗体高度

	QPoint mousePoint;              //鼠标拖动自定义标题栏时的坐标
	bool mousePressed;              //鼠标是否按下
	void InitWindow();              //初始化无边框窗体
	void InitForm();                //初始化窗体数据

	QLineEdit *currentLineEdit;     //当前焦点的文本框
	QString currentType;            //当前输入法类型
	void changeType(QString type);  //改变输入法类型
	void changeLetter(bool isUpper);//改变字母大小写
	void changeStyle(int style);    //切换样式处理
	void setStyle(QString topColor, QString bottomColor, QString borderColor, QString textColor);

	int currentStyle = 0;

	QStackedWidget *keyWindow;      // 键盘窗口,可以翻页显示
	QWidget *letterWindow;          // 字母键盘
	QWidget *signWindow;            // 字母键盘
	QLabel *infoLabel;              // 显示键盘信息

	QPushButton *closeBtn;
	QPushButton *delBtn;
	QPushButton *typeBtn;
	QPushButton *styleBtn;

	QPushButton *btn0;
	QPushButton *btn1;

	QPushButton *btn9;

	QPushButton *btnA;

	QPushButton *btnZ;

	QPushButton *btnSign0;

	QPushButton *btnSign12;
};

cpp文件

#include "KeyBoard.h"
#include "Global.h"
#include <QDesktopWidget>
#include <QStackedWidget>

KeyBoard::KeyBoard(QWidget *parent) :
	QWidget(parent)
{
	this->InitW
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值