zoukankan      html  css  js  c++  java
  • 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);
        //...
    }
  • 相关阅读:
    基于apache httpclient 调用Face++ API
    布隆过滤器(BloomFilter)持久化
    布隆过滤器
    基于firebird的数据转存
    kafka和rabbitmq对比
    python操作rabbitmq
    TCP窗口
    python操作kafka实践
    python使用etcd
    快速排序的python实现
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/3944192.html
Copyright © 2011-2022 走看看