如何實現鼠標單擊彈出軟鍵盤
默認情況下,如果當前編輯框無焦點,則需要鼠標點擊兩次才彈出軟鍵盤,其中第一次是讓該編輯框獲得焦點,第二次點擊才彈出軟鍵盤;
如果當前編輯框已經獲得焦點,則點擊一次就會彈出軟鍵盤;
如何實現“無焦點的編輯框也能夠一次點擊就彈出軟鍵盤呢”。
方法如下:
從QProxyStyle派生,重寫styleHint方法;
如下:
#include <QProxyStyle>
class MyProxyStyle : public QProxyStyle
{
public:
int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const
{
if (hint == QStyle::RequestSoftwareInputPanel)
return QStyle::RSIP_OnMouseClick;
return QProxyStyle::styleHint(hint, option, widget, returnData);
}
};
然後更改Application的Style,如下:
void QApplication::setStyle ( QStyle * style ) [static]
{
QApplication a(argc, argv);
a.setStyle(new MyProxyStyle);
//...
}