我做了一个测试代码,共有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
请按照这个简单程序试试,确实有问题的 |