首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt中习气把主窗体作为一切的容器吗

2013-03-01 
qt中习惯把主窗体作为一切的容器吗?初学,发现qt的主窗体直接在main.cpp里定义,看了一些例子,都是把其他窗

qt中习惯把主窗体作为一切的容器吗?
初学,发现qt的主窗体直接在main.cpp里定义,看了一些例子,都是把其他窗体作为主窗体的child,这样主窗体可以访问所有child,反之亦然,但是平行的child之间怎么互相访问,互相包含头文件?
另外我还有一些自定义类的对象,比如专门处理数据的可专门存储数据的,这些类的定义都放在专门的文件中,一般是在哪声明这些类的对象?是main.cpp,主窗体,还是全局变量?因为这些又涉及到互相包含头文件的问题,有点不知所措。同时我也不想把自定义类的对象作为成员放在GUI类中,而是专门放在外面

以前在CB下,主要的窗体、数据模块都是在每一个类的源文件中定义该类对象的指针,头文件中声明为外部变量,大家互相包含头文件即可,窗体之间可以随意互相访问成员。接触过CB和delphi的就能理解这种情况。但是qt中似乎不是这种风格,我该怎么组织工程呢?
[解决办法]
尽量减少直接依赖,通过信号槽来进行通信。至于你说的那些自定义的类应该放哪是根据你软件的业务来衡量的,一般工具类等可以通过单体或者包含静态方法来解决。全局变量是应该避免使用的。这些都是设计层面上的问题了,与你使用什么框架应该没多大的关系吧。
[解决办法]
但是平行的child之间怎么互相访问.
     这个方法是在是太多了, 最简单的就是相互之间留对方的一个指针, 通过这个指针来访问对方, 这也叫回调. 而Qt里面signal和slot机制可以很优雅的实现回调功能.

热点排行