移植到Qt4后一窗口部件在QSplitter上显示不出来问题原因查找处理
2013-12-23 21:20
246 查看
今天调试移植到Qt的一对话框发现其中添加到QSplitter上的一个列表树未显示出来,查找发现
此要显示的对象是Ui_xxxx的派生类,此派生类的第一父类应为QWidget,而移植时错写成了
QDialog,相应的其构造函数变量初始化处的父类名也错写成了QDialog(Qparent),
改正后可以显示出来了。这里与Qt3to4时的两点移植规则有关:
1. ui的派生类要多重继承,首先继承uic自动生成的Ui_*类的setupUi函数中参数的Qt的
对应类名,其次继承自动生成的Ui_*类,顺序不能反;
2. 派生类的构造函数,首先把在成员变量初始化处的Qt3时使用的父类名改成现继承的
第一个父类名,其次在构造函数第一行中添加setupUi(this);语句。查找此问题过程中
测试发现当把QDialog对象用addWiget()函数加到QSplitter对象中时,创建QDialog
对象时若指定父对象为QSplitter对象,则此QDialog显示不出来,不指定父对象时可以显示
出来。例如,以下语句能正常显示:
QSplitter
*spHori = new QSplitter(this,"spHori");
spHori->setOrientation(Qt::Horizontal);
QDialog *dialog = new QDialog();
spHori->addWidget(dialog);
但若将其中的创建QDialog对象语句换成下面一句则QDialog将显示不出来:
QDialog *dialog =
new QDialog(spHori);
当然,一般不会这样用,即一般不会把QDialog添加到QSplitter上。
此要显示的对象是Ui_xxxx的派生类,此派生类的第一父类应为QWidget,而移植时错写成了
QDialog,相应的其构造函数变量初始化处的父类名也错写成了QDialog(Qparent),
改正后可以显示出来了。这里与Qt3to4时的两点移植规则有关:
1. ui的派生类要多重继承,首先继承uic自动生成的Ui_*类的setupUi函数中参数的Qt的
对应类名,其次继承自动生成的Ui_*类,顺序不能反;
2. 派生类的构造函数,首先把在成员变量初始化处的Qt3时使用的父类名改成现继承的
第一个父类名,其次在构造函数第一行中添加setupUi(this);语句。查找此问题过程中
测试发现当把QDialog对象用addWiget()函数加到QSplitter对象中时,创建QDialog
对象时若指定父对象为QSplitter对象,则此QDialog显示不出来,不指定父对象时可以显示
出来。例如,以下语句能正常显示:
QSplitter
*spHori = new QSplitter(this,"spHori");
spHori->setOrientation(Qt::Horizontal);
QDialog *dialog = new QDialog();
spHori->addWidget(dialog);
但若将其中的创建QDialog对象语句换成下面一句则QDialog将显示不出来:
QDialog *dialog =
new QDialog(spHori);
当然,一般不会这样用,即一般不会把QDialog添加到QSplitter上。
相关文章推荐
- 移植到ARM的qt4.6.3显示中文的问题
- OpenCV问题集锦,图片显示不出来的问题,cvWaitKey(0),不能读图片,未经处理的异常,等问题集合
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法
- OpenCV问题集锦,图片显示不出来,WaitKey(0),imread()不能读图片,未经处理的异常,等问题集合
- 用VS创建一个win32窗口,编译运行都可以,但那个窗口没有显示出来(孙鑫老师第一课问题)
- 移植的的QT程序不能显示中文问题
- OpenCV问题集锦,图片显示不出来,WaitKey(0),imread()不能读图片,未经处理的异常,等问题集合
- 【Qt移植到linux】问题7 qt界面无法输入中文,中文不显示,乱码等问题
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法
- QT的exe文件移植到其他机器非png图片不显示问题
- 解决,windows的任务计划中添加一个批处理脚本,总是显示命令行窗口的问题
- ARM开发板OK6410移植opencv-2.4.7库qt界面显示(附加各种问题解决方案)
- Discuz!NT中管理帖子:精华、移动窗口显示不出来的问题——xml常见错误之XML 或文本声明不在实体的开头
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法
- session过期情况下弹出窗口显示2个登陆页面的问题处理
- Qt自定义界面类并提升(提升的窗口部件),把OpenGL绘制的图形显示在QT的ui界面上
- DOS命令行窗口mysql显示乱码问题处理
- 【Qt移植到linux】问题 qt界面无法输入中文,中文不显示,乱码等问题
- 关于Qt中LOGO与窗口图标显示问题的总结
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法