请求高手解决linux手机输入法问题
本来说输入法很快就可以做出来,界面的程序我已经从E8的横屏修改成ZN5的竖屏了。这个运行也没有大问题。
问题出在输入法界面的程序的继承的QDialog这个类,用的就是他的exec()函数运行不返回,一直到确定或取消按下,才返回这个特点。
就在我准备发布的那会儿,发现,QDialog的子类,也就是我的输入法的界面的类,在析构时,报Segmentation fault.
我和清泉和无印及3D都商量过这个事情,这个99.9%是由于现在的SDK的问题,也就是QDialog.h或是某个类的头文件不正确。
前天我跟无印用替换他的原来方法的方式,我把QDialog的一个方法重写了
QDialog::~QDialog()
{
// Need to hide() here, as our (to-be) overridden hide()
// will not be called in ~QWidget.
cout<<"In '~QDialog()'!"<<endl;
hide();
cout<<"#1"<<endl;
if(d==NULL){
cout<<"d is null!"<<endl;
}else{
cout<<"d is not null!"<<endl;
}
delete d;
cout<<"#2"<<endl;
}
查到这个错:
多数是打印:
In '~QDialog()'!
#1
d is not null!
Segmentation fault!
也就是在delete QDialogPrivate时报的错。
QDialog的头文件大家可以看看,仔细想想,QDialogPrivate这个东西是在QDialog.cpp中定义并实现的,也可以说是与头文件没有关系。
所以我现在不清楚是什么原因导致的,请有经验的哥们,帮忙解释下是什么原因。
问题出在输入法界面的程序的继承的QDialog这个类,用的就是他的exec()函数运行不返回,一直到确定或取消按下,才返回这个特点。
就在我准备发布的那会儿,发现,QDialog的子类,也就是我的输入法的界面的类,在析构时,报Segmentation fault.
我和清泉和无印及3D都商量过这个事情,这个99.9%是由于现在的SDK的问题,也就是QDialog.h或是某个类的头文件不正确。
前天我跟无印用替换他的原来方法的方式,我把QDialog的一个方法重写了
QDialog::~QDialog()
{
// Need to hide() here, as our (to-be) overridden hide()
// will not be called in ~QWidget.
cout<<"In '~QDialog()'!"<<endl;
hide();
cout<<"#1"<<endl;
if(d==NULL){
cout<<"d is null!"<<endl;
}else{
cout<<"d is not null!"<<endl;
}
delete d;
cout<<"#2"<<endl;
}
查到这个错:
多数是打印:
In '~QDialog()'!
#1
d is not null!
Segmentation fault!
也就是在delete QDialogPrivate时报的错。
QDialog的头文件大家可以看看,仔细想想,QDialogPrivate这个东西是在QDialog.cpp中定义并实现的,也可以说是与头文件没有关系。
所以我现在不清楚是什么原因导致的,请有经验的哥们,帮忙解释下是什么原因。
请本论坛的大侠看看能不能解决