QT 中的软键盘例子

转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp
作者联系方式:YU TAO <yut616 at sohu dot com>

 

关键字: qt, webkit, qtwebkit, keyboard, soft keyboard, virtual keyboard,input panel, input method, qwsinputmethod, 软键盘,虚拟键盘,数字键盘,输入法

 

在 qt 4.6 的代码中,带了一个软键盘的例子 inputpanel,这里记录一下。

 

[代码]

qt-everywhere-opensource-src-4.6.3/examples/tools/inputpanel

 

可以用来显示一个数字键盘,它会在 app 中设置 input context;

 

 

[用途]

你可以将它加到 webkit browser 演示示例中,从而做到在 browser 中显示一个软键盘:

qt-everywhere-opensource-src-4.6.3/demos/browser

 

它可以在web page 上提示输入框,也可以在 UI settings 里提示输入框。

 

运行结果如下:

在 Linux ,可以使用 QT 软键盘来实现在应用程序使用虚拟键盘的功能。 首先,需要在 QT 应用程序添加软键盘控件。可以使用 QWidget 或 QLineEdit 控件来添加软键盘。在 QWidget 或 QLineEdit 控件添加以下代码: ```cpp QLineEdit *lineEdit = new QLineEdit(this); QInputMethod *inputMethod = lineEdit->inputMethod(); inputMethod->setVisible(true); inputMethod->setInputMethodHints(Qt::ImhNoAutoUppercase); ``` 这段代码将创建一个 QLineEdit 控件,并显示输入法软键盘)。setInputMethodHints() 方法用于设置输入法选项,例如关闭自动大写。 然后,需要创建一个软键盘控件。可以使用 QGridLayout 或其他布局管理器来创建软键盘。例如: ```cpp QWidget *keyboardWidget = new QWidget(this); QGridLayout *keyboardLayout = new QGridLayout(keyboardWidget); keyboardWidget->setLayout(keyboardLayout); QList<QString> keys = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }; for (int i = 0; i < keys.count(); ++i) { QPushButton *button = new QPushButton(keys.at(i), keyboardWidget); keyboardLayout->addWidget(button, i / 3, i % 3); } ``` 这段代码将创建一个包含数字键的软键盘控件,并使用 QGridLayout 布局管理器放置按钮。 最后,需要在应用程序显示软键盘控件。可以在需要显示软键盘的控件添加以下代码: ```cpp QRect rect = lineEdit->rect(); QPoint pos = lineEdit->mapToGlobal(rect.bottomLeft()); int x = pos.x(); int y = pos.y() + rect.height(); keyboardWidget->move(x, y); keyboardWidget->show(); ``` 这段代码将获取 QLineEdit 控件的位置,并在其下方显示软键盘。 到此为止,就可以在 Linux 使用 QT 软键盘了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值