Monday, November 3, 2008

Qt VKB

Realized last week that what I need (or want, luckily those match quite nicely these days) to do is a virtual keyboard prototype based on Qt... Got the basic UI in there during the weekend, so what we have now:

video

Works also in N810 but the performance is lacking, it's not totally fluid.

Plans:
- Have to figure out proper layout(s), wouldn't want to copy directly e.g. from iPhone or N810
- Support gestures and other usability tricks
- After this, make more eye candy, animations etc. Not too much, but to help usability
- Supporting word prediction and hit prediction is totally doable but would need more AI & grammar database integration, so not right now for this UI testing

Anyway: If you got good layout & feature ideas, please share!

6 comments:

havoc said...

Take a look at the Fitaly Keyboard! http://www.fitaly.com/domperignon/domperignon4.htm

Steeling a keyboard is bad, however, if you made your QT VKB modular, I could load my own keyboard layout. I purchased a license for the Fitaly KB for my Palm device years ago. I could legally load a Fitaly keyboard profile (especially if you made your software easily extensible) and use it! Others could license or negotiate with TextWare Solutions to use the keyboard.

Win, win, win! Don't underestimate the power of that keyboard layout. It is as good as they claim. That's the one thing I really miss about my old Palm.

Kaitsu said...

That Fitaly layout sure looks...different =)

I totally agree that QWERTY is not the most suitable layout for mobile/touch devices, but I'm also not very keen to "non-standard" layouts you first need to learn to use. Here I'd like to experiment how (QWERTY) virtual keyboard could be made nicer & more usable when we have more powerful devices. Supporting different layouts is a good goal!

liquid said...

Hi, i'm lcuk from #maemo :)
i've just gone through the same growing pains adding a virtual keyboard in liqbase ( http://liqbase.net )

Theres a guy who you might be interested in speaking to, hes written an svg front end for keyboards and stuff.

I had a quick look at the recent maemo summit and whilst he also had the rendering deficiencies it looked really cool and expandable, I think it might be an idea for you two to get in touch.

http://jyro.blogspot.com/2008/09/inkface-svg-based-gui-design.html


It would be great if there was only 1 vkb, but it seems every graphical kit invents their own - i wish every device had a keyboard like the n810.

gary

deviceguy said...

There is QVKeyboard:
http://qt-apps.org/content/show.php/QVKeyboard?content=77983

Kaitsu said...

liquid/lcuk: Approach of using fully SVG for theming is interesting, but as a liqbase developer I'm sure you also prefer speed over XML... =)

deviceguy: Thanks, tested QVKeyboard now also! Approach in there is more traditional X11 & QWidget way, but I'm sure there is much to learn from that. My proto utilizes QGraphicsView + items and widgets, targeting into more fluid UI. For example in QVKeyboard all QMyButtons listens mouse events, but in Qt VKB the keyboard view listens the mouse and uses itemAt() to seek the pressed key. This makes it possible to switch between keys and react only after releasing the button/touchscreen, for iPhone-like character popup.

liquid said...

kaitsu,

heh, I've got nothing against xml - once objects are loaded they are identical.

However with liqbase I use a custom format for the sketches, this is a very simplistic rudimentary version of svg which I then render at fullspeed (as you will have seen by now).
If I allowed full svg, I *know* people would come bearing extremely heavy professionally crafted multi megabyte glyphs and expect them to operate in the same way.

I know my limitations (for now).

good luck with this project, when I get my hands on a faster compiler I might be heading for QT and I'll be sure to try it out.

gary