Description:

A virtual keyboard for touch-screen application

Virtual Keyboard for touch-screen devices written in C/C++ Qt, compatible for Qt 4.x and 5.x The widget works with QLineEdit, but you can modify it for your convenience.

Features:

-- Floating or embedded in QWidget feature
-- Numeric Keyboard
-- click sound buttons
-- copy/cut and paste facility
-- echo password facility
-- dynamic keyboard layout based on selected language
-- move around textbox using TAB or directly click on a textbox (require subclassing as in the provided example)
-- Dual mode keyboard: large and small
-- zoom facility for pressed keys

Supported Languages:

Arabic
English
French
German
Italian
Russian

We appreciate any donation since this will be used to improve or better support this project.

Have a nice day
Last changelog:

Added missing files 1 month ago

Added new form files missed out in the last commit.

rainmaker

1 month ago

i cannot find form.h in the repository..
can any one help me out..
while running now i am getting only the number keypad. no letters are there

Report

maratk1n

1 month ago

Similarly:) I just created a form class (form.h, form.cpp, form.ui, but then you need to remove the excess in Tester.pro) and compiled it.
this->myKeyboard = new widgetKeyBoard(false, 0, false); //The third argument for outputting the alphabetic keyboard

Report

smratijohri

1 year ago

hello, i want a virtual keyboard for qnx, so i tried your code, i am unable to build it on QtCreator, version i am using is 3.6.0 and platform is windows.
error:'QClipboard' does not name a type. its showing error in Qt files itself. can you please guide me on the same. I really need a virtual keyboard for qnx in my project.
thanks
Smrati

Report

C

AlterX

1 year ago

Hi,
that is really strange since I am used to compile on windows using QtCreator 3.6
I think you have a problem with your Qt installation. Remove and reinstall it again should fix the problem

Report

alirezatkh2

1 year ago

hi. thanks for your code. I want to use both english and french layouts and change them with a push button. do you have any idea what should I do?
is it easy or a complex code?

Report

C

AlterX

1 year ago

Hello...
that is feasible. I think you have to dynamically load Translation spefying the ts file and then refreshing of the QPushButton
There are a lot of example outthere on how to do this.

Report

alirezatkh2

1 year ago

Thanks for soon answer.

I'm on it now. but I don't know how refresh or update the widgetKeyBoard! by which codes can I refresh it?

Report

C

AlterX

1 year ago

I just released a new version that is capable to change keyboard layout dynamically based on the selected language

Report

alebaroni86

1 year ago

Hi,
I'm using Qt Creator 3.5.1 built on Qt 5.5.1 on Linux Ubuntu 14.04 LTS. I've t add a virtual keyboard to my HMI project, adding float value and text to DoubleSpinBox and TextEdit elememts; actually i'm not able to add this project to mine and i'd like to know if i can add it to Qt's project with 5.5.1 version. Is it compatible?

Thanks

Alessio

Report

C

AlterX

1 year ago

Hi Alessio,
I didn't get it, sorry.
Since we are both italians, please contact me in private.

Report

HoMS

1 year ago

First thanks for your great keyboard.
In a little testproject i implemented it and it worked fine. but in my actual project i declared and initialized the keyboard in my main class and passed it to an instance of another class. show and hide is working as expected but the keyboard is not taking any input. do you have an idea what can be the reason? if needed i could send you my actual project.
Greetings

Report

C

AlterX

1 year ago

Hello,
the only things I can think about are:
1. you are writing, but there is no real textbox with focus
2. you are blocking the main loop thread

Send me the code so I can better understand the problem

Report

JorgeIII

2 years ago

Hello,
First of all, tahnk you for the great code you provided. It was exactly what I was looking for. I have already implemented it and it works great. The thing is, I am looking to modify the focus of the line edit without having to press the virtual keyboard's TAB key. I saw how you did that in the example provided bye creating a new class "ExampleMyFocus". My question is: Is there a way to do the same function as this class without having to create it? Creating it would mean that I would have to modify each and every line edit I already have in my program, and I think there is a better solution that I am failing to find.
Thanks in advance, and great work on the code.

Report

C

AlterX

2 years ago

Hello,
I just released new code with small improvements. The only suggestion I can give to you, if I correctly understood your question, is to use "promotion of widget" on QLineEdit with class uses focus. I changed the example to show how it works.
The only inconvenience you have to do manually on all QLineEdit in the ui designer (but the instance you want to promote to will be done only once).

Report

JorgeIII

2 years ago

Thanks!
I completely forgot about Widget promotion! Let me implement the changes and use the updated code too. Thanks again for the reply.

Report

C

AlterX

2 years ago

I found an old version bundled with Qt 5.x code. Since it is very old and not supported, you have to compare code to check for fixed bugs or new features. This is the best I can do!

Report

jastmc

3 years ago

I am using this as a keypad and it works great.

However I cannot use it from two different classes in the same app. I set up one keypad to enter a PIN in the first class and that works fine.
When I set up another keypad in another class in order to enter data in the second class, the keypad comes up blank - there are no keys in the keypad.

How can I get around this?

Regards,
James

Report

C

AlterX

3 years ago

It is very strange this behaviour since the object is reentrant and so different instance can live all together...anyway I don't know your code, just try to create one global instance and change it when needed.

Report

mrwallyit

3 years ago

Hello,

good application. If i change QlinetEdit with Tab or Return works correctly, if i push the lineedit the focus is changed but i see the preceding lineedit that blinks( i wrote a lot of char).

Thanks
My Best regards

Report

Robinson0

3 years ago

Thanks for your sharing ,firstly.I have a problem ,when i make it with Qt4.7 ,it happens an error:QGuiApplication,no such file or directory.Is not it supports Qt4?

Report

C

AlterX

3 years ago

Hi,
no actually it doesn't support Qt 4.x.
You need to do some changes in order to get worked; some hints (from the virtualkeyboard Qt 5.x code):
1. QtGuiApplication -> QApplication
2. toUtf8() -> toAscii() - (optional)
3. erase "widgets" module from .pro
4. other stuff

Report

Robinson0

3 years ago

3Q,i will have a try.

Report

arges

4 years ago

Very nice job. Thanks.
However, I have a little problem in my application on ARM9 board.
It works with QDialog widget. But, When the button layout is changed,

for example; setStylesheet ("QDialogButtonBox {button-layout: 1}")

the Application terminates without an error message. Why ?
I can't catch the error
Would you be help.

Report

C

AlterX

4 years ago

Hi thanks...Really I don't know why that happen to you...Have you tried to comment that line? Please try it on desktop to see if happen on it too.

Report

edup

5 years ago

Hi,

Thanks again for your time. But what are you saying only works if the other window is made with qt. This not works with notepad or firefox or even the calculator right?

Thanks

Report

Added missing files 1 month ago

Added new form files missed out in the last commit.

Numeric Keyboard feature 2 months ago

Added feature to create a numeric keyboard (check that out in the screenshot)

Improved keyboard behaviour 3 months ago

It is now possible to create several instance in the same application (previous version only one instance allowed)
Keyboard can now be created as floating widget or embedded in a QWidget
A new parameter in the show() allows to specify the QLineEdit to start with when the keyboard shows up
Extended example to show above features

8 years ago

A new resynch of code was required since during the transfer of the code to github something went wrong resulting in a strange language localization.
Now the code is up-to-date and it seems to work well.
Please let me know if you have any problem

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
2017.08
updated Aug 23 2017
added Jun 23 2009
downloads today
2
page views today 19