QT軟鍵盤(二)

如何實現鼠標單擊彈出軟鍵盤

 

默認情況下,如果當前編輯框無焦點,則需要鼠標點擊兩次才彈出軟鍵盤,其中第一次是讓該編輯框獲得焦點,第二次點擊才彈出軟鍵盤;

如果當前編輯框已經獲得焦點,則點擊一次就會彈出軟鍵盤;

 

如何實現“無焦點的編輯框也能夠一次點擊就彈出軟鍵盤呢”。

方法如下:

 

從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]

int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    a.setStyle(new MyProxyStyle);
    //...
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章