日志
j简单的虚拟键盘(没有用输入法接口类)1
2011-09-25 22:07
第一次发文,大家见笑了。本人学Qt还没3个星期,就跟在老师后面做开发,老师叫做一个简单的虚拟键盘,只用实现大写字母和数字的输入,实现简单的删除功能就行。不废话直接上码O(∩_∩)O~ #ifndef EDIT_H#define EDIT_H#include<QLineEdit>#include<QObject>#include<QEvent>#include"keyboard.h"class edit:public QLineEdit{ Q_OBJECTpublic: edit(QWidget *parent = 0); ~edit(); keyboard* Return(){return board;} bool eventFilter(QObject *, QEvent *);private: keyboard *board;};#endif // EDIT_H#include"edit.h"edit::edit(QWidget *parent):QLineEdit(parent){ board=new keyboard(this); this->installEventFilter(this); adjustSize(); resize(400, height()); setFocus(); int y; y=this->y(); if(y<=240) { this->Return()->move(100,280); } else{ this->Return()->move(100,0); }}edit::~edit(){ delete board;}bool edit::eventFilter(QObject *obj, QEvent *ev){ if(obj==this) { if(ev->type()==QEvent::FocusOut) { board->close(); this->setReadOnly(true); return true; } else{ return false; }} else { return edit::eventFilter(obj,ev); }}#ifndef KEYBOARD_H#define KEYBOARD_H#include <QWidget>#include<QSignalMapper>#include<QLineEdit>namespace Ui { class keyboard;}class keyboard : public QWidget{ Q_OBJECTpublic: explicit keyboard(QLineEdit *parent = 0); ~keyboard(); bool eventFilter(QObject *, QEvent *);public slots: void doclicked(QString); void doDel();private: Ui::keyboard *ui; QSignalMapper *mapper; QLineEdit *editor;};#endif // KEYBOARD_H#include "keyboard.h"#include "ui_keyboard.h"keyboard::keyboard(QLineEdit *parent) : QWidget(parent,Qt::Tool| Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint),editor(parent), ui(new Ui::keyboard){ ui->setupUi(this); editor->installEventFilter(this); editor->setReadOnly(true); this->hide(); this->setFocusPolicy(Qt::NoFocus); ui->widget->setMaximumSize(300,150); ui->widget->setMinimumSize(300,150); ui->widget->setAutoFillBackground(true); QPalette palette =ui->widget->palette(); palette.setBrush(QPalette::Window, QBrush(QPixmap(":/keymap.PNG").scaled( ui->widget->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); ui->widget->setPalette(palette); mapper=new QSignalMapper(this); mapper=new QSignalMapper; mapper->setMapping(ui->pushButton_A,"A"); connect(ui->pushButton_A,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_B,"B"); connect(ui->pushButton_B,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_C,"C"); connect(ui->pushButton_C,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_D,"D"); connect(ui->pushButton_D,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_E,"E"); connect(ui->pushButton_E,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_F,"F"); connect(ui->pushButton_F,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_G,"G"); connect(ui->pushButton_G,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_H,"H"); connect(ui->pushButton_H,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_I,"I"); connect(ui->pushButton_I,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_J,"J"); connect(ui->pushButton_J,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_K,"K"); connect(ui->pushButton_K,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_L,"L"); connect(ui->pushButton_L,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_M,"M"); connect(ui->pushButton_M,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_N,"N"); connect(ui->pushButton_N,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_O,"O"); connect(ui->pushButton_O,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_P,"P"); connect(ui->pushButton_P,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_Q,"Q"); connect(ui->pushButton_Q,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_R,"R"); connect(ui->pushButton_R,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_S,"S"); connect(ui->pushButton_S,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_T,"T"); connect(ui->pushButton_T,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_U,"U"); connect(ui->pushButton_U,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_V,"V"); connect(ui->pushButton_V,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_W,"W"); connect(ui->pushButton_W,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_X,"X"); connect(ui->pushButton_X,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_Y,"Y"); connect(ui->pushButton_Y,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_Z,"Z"); connect(ui->pushButton_Z,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_0,"0"); connect(ui->pushButton_0,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_1,"1"); connect(ui->pushButton_1,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_2,"2"); connect(ui->pushButton_2,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_3,"3"); connect(ui->pushButton_3,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_4,"4"); connect(ui->pushButton_4,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_5,"5"); connect(ui->pushButton_5,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_6,"6"); connect(ui->pushButton_6,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_7,"7"); connect(ui->pushButton_7,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_8,"8"); connect(ui->pushButton_8,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_9,"9"); connect(ui->pushButton_9,SIGNAL(clicked()),mapper,SLOT(map())); connect(ui->pushButton_point,SIGNAL(clicked()),mapper,SLOT(map())); mapper->setMapping(ui->pushButton_point,"."); connect(ui->pushButton_del,SIGNAL(clicked()),this,SLOT(doDel())); connect(mapper,SIGNAL(mapped(QString)),this,SLOT(doclicked(QString))); connect(ui->pushButton_ok,SIGNAL(clicked()),this,SLOT(close()));}keyboard::~keyboard(){ delete ui;}bool keyboard::eventFilter(QObject *obj, QEvent *ev){ if(obj==editor){ if(ev->type()==QEvent::MouseButtonPress){ this->show(); editor->setReadOnly(false); return true; } else{ return false; }} else { return keyboard::eventFilter(obj,ev); }}void keyboard::doclicked(QString obj){ QString text=editor->text(); text+=obj; editor->setText(text);}void keyboard::doDel(){ editor->backspace();} 最后来张图O(∩_∩)O~
图片:
|
下一篇: 小感受
上一篇: 无