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:

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

Changelog:

1 year 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

1 year ago

smratijohri

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

1 year ago

AlterX

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

1 year ago

alirezatkh2

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

1 year ago

AlterX

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

1 year ago

alirezatkh2

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

1 year ago

AlterX

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

Report

1 year ago

alebaroni86

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

1 year ago

AlterX

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

Report

1 year ago

HoMS

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

1 year ago

AlterX

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

1 year ago

JorgeIII

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

1 year ago

AlterX

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

1 year ago

JorgeIII

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

Report

1 year ago

AlterX

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

2 years ago

jastmc

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

2 years ago

AlterX

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

2 years ago

mrwallyit

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

2 years ago

Robinson0

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

2 years ago

AlterX

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

2 years ago

Robinson0

3Q,i will have a try.

Report

4 years ago

arges

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

4 years ago

AlterX

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

4 years ago

edup

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

4 years ago

AlterX

My suggestions using win api, therefore it works for all native windows other then qt system (that is based on win api)

Report

4 years ago

edup

Hi AlterX,

Thanks for your comment.

Even i don't know how to do this in QT:

I know we can do a process monitoring so we can access to all processes for sure.

And i know that we can use a virtual keyboard to our OS that writes to the focus windows, independent if was launched by us or not (in windows you have a virtual keyboard).

What i want to do is something like this:

You have a computer A that opens a socket to computer B.

You have a computer C that opens a socket to computer B.

The computer A and C asks B for all of its opened windows or to run a proccess so:

The computer A and C asks computer B to run a process like notepad (or calcultator).

Then the user in computer A choose the process where he wants to write to. So, computer A sends a message to computer B saying that wants to write on notepad.
Computer C sends a message to computer B saying that wants to write on calculator.

After that i want to have simultaneous writing on notepad (user A) and calculator (user B).

I want to add more than 2 users after this test.

Thanks a lot for your help.



Report

Supporters

Recent Donations

Be the first to donate
Filename Version Description Filetype Packagetype License Downloads Date Filesize Install
Score 77%
77.00 Likes
23 Dislikes

0 Supporters for Virtual Keyboard:

Recent Donations:

Be the first to donate
show all
Details
version
2016.01
updated Jan 08 2017
added Jun 23 2009
downloads
page views 5502
support AlterX
For The Product
Virtual Keyboard
5 - 10 - 25 - 50 - 100 - 200 - 500