天嵌 ARM开发社区

 找回密码
 注册
查看: 3462|回复: 7

输入法界面在dialog类型界面会死掉

[复制链接]
budao 发表于 2014-9-15 09:42:04 | 显示全部楼层 |阅读模式
我现在终于在天嵌的界面实现输入法软键盘的功能,之前的失败我发现居然是因为界面类型造成,也就是当我的界面时dialog的时候,按照教程写出的输入法界面会弹出,但是软键盘不能移动,不能输入,就像死掉一样。但是当我用widget的界面去完成同样的功能,一切都正常了。请贵公司帮我看看这个是不是一个bug?我比较需要dialog方式下的输入法界面控制!
天嵌_support1 发表于 2014-9-15 14:22:13 | 显示全部楼层
我们的输入法在QT自带的dialog(例如QFileDialog)下是有这种情况,目前还没方法可以避免。
若要使用这样的对话框,只能自己写代码实现。自己写的dialog是能使用这输入法的。
 楼主| budao 发表于 2014-9-16 14:00:54 | 显示全部楼层
那为什么我的eclipse创建出一个新的界面,类型是QDialog,自己创建的窗体,然后按照按照教程写出的输入法界面会弹出,但是软键盘不能移动,不能输入,就像死掉一样。这是为什么呢?我自己写的应该不是QT自带的。你们可以吗? 可以的话能否给我一个源代码让我试试?
天嵌_support1 发表于 2014-9-17 10:27:21 | 显示全部楼层
能把你的测试代码贴上来,我看看。
 楼主| budao 发表于 2014-9-18 10:19:30 | 显示全部楼层
我做了一个测试代码,共有4个文件,main.cpp  ui_test2.h test2.cpp test2.h 同时在目录中拷贝了TQInputMethod.h和libTQInputMethod.so  
只有一个界面中放了一个pushbutton 和 lineEdit控件。
新建项目的时候选择是dialog的界面。

-------------main.cpp

#include "test2.h"

#include <QtGui>
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    test2 w;
    w.exec();
    return a.exec();
}

-------------------test2.cpp

#include "test2.h"

test2::test2(QWidget *parent)
    : QDialog(parent)
{
        ui.setupUi(this);

        //mInputShow = false;
        //关联键盘展开和隐藏事件
        connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(showAndHide()));
        im = new TQInputMethod;//定义输入法控件
        QWSServer::setCurrentInputMethod(im);
        ((TQInputMethod *) im)->setVisible(false);//显示输入法

}

test2::~test2()
{

}

void test2::showAndHide()
{

        ((TQInputMethod *) im)->setVisible(true);

}

---------------test2.h

#ifndef TEST2_H
#define TEST2_H

#include <QtGui/QDialog>
#include "ui_test2.h"

#include "TQInputMethod.h"
#include <QWSInputMethod>

class test2 : public QDialog
{
    Q_OBJECT

public:
    test2(QWidget *parent = 0);
    ~test2();


public slots:
        void showAndHide();

private:
    Ui::test2Class ui;

    QWSInputMethod* im;//声明输入法控件
    bool mInputShow;

};

#endif // TEST2_H

请按照这个简单程序试试,确实有问题的
 楼主| budao 发表于 2014-9-28 09:58:38 | 显示全部楼层
请问源代码我已经贴了很长时间了? 给个话,好不?
天嵌_support1 发表于 2014-9-28 14:42:14 | 显示全部楼层
我这边用了你的代码,还有论坛上的输入法库,测试了下,没有你说的这个问题哦。
 楼主| budao 发表于 2014-9-28 15:00:11 | 显示全部楼层
main函数你用的是  w.exec();吗? 这里如果换成show是没有问题的


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-17 04:00 , Processed in 1.030313 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表