• 5672阅读
  • 5回复

继承对话框类的问题 [复制链接]

上一主题 下一主题
离线paomu52
 
只看楼主 倒序阅读 楼主  发表于: 2009-05-13
— 本帖被 XChinux 执行加亮操作(2009-05-15) —
pubilc继承一个对话框类后 却不能使用对话框类中的控件指针成员 ??????原因何在????
离线paomu52
只看该作者 1楼 发表于: 2009-05-14
可能我没说明白 再补充一下
我现在再一个对话框内放了很多控件 但是根据需要我得在qmake自动生成的.h中添加一些函数
本来不再做界面修改也可以 但是难免会有界面改动 改动之后 再qmake的话 我做的修改就会付之东流

所以采用继承这个对话框类的方法  但是现在我在子类中不能使用基类中的控件指针  

编译时 说我没有定义 这个控件指针  

按C++语法来说 我采用的是pubilc继承 而且这个控件指针 也是公有类型的 在子类中使用是没有问题的啊

另外,如果我手动在基类中添加一个int型的变量 同样在子类中使用时没有问题的

难道这个控件 不能这样用

那我又采用什么方法来解决这个问题了 ?????????
离线leehomexu
只看该作者 2楼 发表于: 2009-05-15
可以肯定的是,在楼主所说的前提下,使用控件指针成员是可行的!
离线平常道
只看该作者 3楼 发表于: 2009-05-15
楼主是不是使用的QtCreator创建的GUI项目
在QtCreator中,对使用设计器创建的类的使用不是使用的继承,而是组合的方式,它会自动创建一个ui变量,使用对话框中的组件时,应该使用ui->。。。的方式

如果不是这种情况,那你需要再看看代码,正如2楼所说,你说的前提下,是没有问题的
离线paomu52
只看该作者 4楼 发表于: 2009-05-15
我用的QT版本是3.3

用QT desiger工具放置的界面  然后qmake -project; qmake ***.pro;make 来完成的

但是没有你说的这个ui变量啊

最开始只有FDISP.ui
qmake -project 后增加了 FDISP.pro
qmake ***.pro后增加了 FDISP.h FDISP.cpp

还有就是双击对话框会产生一个FDISP.ui.h是空的 里面可以添加代码

这时候没有主函数 自己写一个 然后我自己写了child.cpp child.h来继承FDISP.h的类

整个过程就是这样的 但是这些文件里面没有你说的ui变量啊。
离线paomu52
只看该作者 5楼 发表于: 2009-05-15
问题解决了

原来要在我继承的.cpp文件中包含所用控件的头文件

跟VC有点不一样 因为继承的父类的.cpp(自动生成的)自动添加了 所需的头文件

我现在继承了它并且也包含了父类的.h按道理不应该再包含这些头文件了 想不到仍然需要
快速回复
限100 字节
 
上一个 下一个