手册

例子代码

704
文子
2023-11-02 11:47:59

手动控制弹出例子(参考例子DemoEdit):

void MainWindow::Init()
{
    // 创建输入法,全局只创建一次即可
    g_IM = DWInputMethodCreate();

    // 设置默认模式和大小
    DWIM_SetMode(g_IM, "py26");
    DWIM_SetSize(g_IM, 720, 280);
}
 
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::RequestSoftwareInputPanel ||
        event->type() == QEvent::MouseButtonPress ||
        event->type() == QEvent::FocusIn)
    {
        if (IsEdit(obj)) {
            DWInputMethodShow(im, NULL);
        }
    }

    return QMainWindow::eventFilter(obj, event);
}



自动弹出例子(参考例子DemoHook):

void MainWindow::Init()
{
    // 创建输入法,全局只创建一次即可
    g_IM = DWInputMethodCreate();

    // 设置默认模式和大小
    DWIM_SetMode(g_IM, "py26");
    DWIM_SetSize(g_IM, 720, 280);

    // 创建自动弹出
    mHandler = AutoPopupHandler_Open();
    AutoPopupHandler_SetAutoHide(mHandler, true);               // 点在输入框外,自动隐藏
    AutoPopupHandler_SetAutoPos(mHandler, 2, 0, 30);            // 设置为2即跟随鼠标,无X偏移,Y偏移30即,相对于输入框向下移30个像素。
    AutoPopupHandler_AddAutoMode(mHandler, "editName", "py26.lay");     // 人名的输入框,自动切换到全键盘拼音
    AutoPopupHandler_AddAutoMode(mHandler, "editPhone", "phone.lay");   // 电话输入框,自动切换到电话键盘
    AutoPopupHandler_SetAutoMode(mHandler, true);                       // 自动切换输入模式
    AutoPopupHandler_ExcludeAutoShow(mHandler, ui->dateEdit);   // 时间控件不弹出键盘
    AutoPopupHandler_SetKeyboard(mHandler, g_IM);               // 设置键盘
    AutoPopupHandler_Start(mHandler, this);                     // 开始
}