找回密码
 立即注册
收起左侧

这样设计靠谱么?

8
回复
9584
查看
[复制链接]
累计签到:6 天
连续签到:1 天
来源: 2014-8-26 08:52:48 显示全部楼层 |阅读模式
5Qter豆
正常程序是这样的
QApplication a(argc,argv);
Widget w;
w.show();
return a.exec();

如果subclass QApplication,把widget包含在新的MyApplication里,这样就可以全局得到w,比如这样:

MyApplication a(argc,agrv);
a.showWidget();
return a.exec();
可能对于mdi的设计方式有点用,
不知道这样设计是否合理?请指教,thx

最佳答案

查看完整内容

我觉得你好像太纠结细节上的东西了,你应该先考虑抽象的东西,而不是直接考虑利用哪个Qt的技术点,这样以后换别的技术就不至于惊慌失措。 架构设计,面向xx设计这些东西,从来都不跟具体技术有直接联系
回复

使用道具 举报

尚未签到

2014-8-26 08:52:49 显示全部楼层
KaoN 发表于 2014-8-28 14:40
qApp就是个全局,是整个应用程序的instance,
如果我这个程序就是基于MDI的,那么把MainWindow的instance ...

我觉得你好像太纠结细节上的东西了,你应该先考虑抽象的东西,而不是直接考虑利用哪个Qt的技术点,这样以后换别的技术就不至于惊慌失措。

架构设计,面向xx设计这些东西,从来都不跟具体技术有直接联系

点评

这不生怕头没起好,后面难走么~~ anyway, thx~  详情 回复 发表于 2014-8-28 22:38
回复

使用道具 举报

尚未签到

2014-8-26 14:41:45 显示全部楼层
跟mdi没什么关系吧?

点评

恩恩,是没太大关系, 就是可以有个全局变量, 不知道有没有别的影响  详情 回复 发表于 2014-8-26 17:40
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-8-26 17:40:18 显示全部楼层
Joey_Chan 发表于 2014-8-26 14:41
跟mdi没什么关系吧?

恩恩,是没太大关系,
就是可以有个全局变量,
不知道有没有别的影响
回复

使用道具 举报

尚未签到

2014-8-26 23:08:29 显示全部楼层
KaoN 发表于 2014-8-26 17:40
恩恩,是没太大关系,
就是可以有个全局变量,
不知道有没有别的影响

全局变量。。。我几乎不用这东西的,一些共享的东西我直接装进一个类里面,用静态函数给大家调用

点评

那比如mdi多窗口,需要在某个窗口选中内容后,所有窗口都要选中相应的内容,是不是用全局方便点 ? QSharedData啥的。。是不是也可以。。貌似没怎么用过  详情 回复 发表于 2014-8-27 10:34
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-8-27 10:34:51 显示全部楼层
Joey_Chan 发表于 2014-8-26 23:08
全局变量。。。我几乎不用这东西的,一些共享的东西我直接装进一个类里面,用静态函数给大家调用 ...

那比如mdi多窗口,需要在某个窗口选中内容后,所有窗口都要选中相应的内容,是不是用全局方便点 ?
QSharedData啥的。。是不是也可以。。貌似没怎么用过
回复

使用道具 举报

尚未签到

2014-8-27 21:18:21 显示全部楼层
KaoN 发表于 2014-8-27 10:34
那比如mdi多窗口,需要在某个窗口选中内容后,所有窗口都要选中相应的内容,是不是用全局方便点 ?
QShare ...

在面向对象或模块的设计中尽量避免使用全局变量这些c语言的东西,不利于程序的扩展、修改和维护

试着抽象一些类,通过类的实现来共享数据

QSharedData没用过,你可以试试看

点评

qApp就是个全局,是整个应用程序的instance, 如果我这个程序就是基于MDI的,那么把MainWindow的instance拿出来作为全局其实也并不是妨碍面向对象的原则吧? 这样理解有没有不妥呢?  详情 回复 发表于 2014-8-28 14:40
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-8-28 14:40:06 显示全部楼层
Joey_Chan 发表于 2014-8-27 21:18
在面向对象或模块的设计中尽量避免使用全局变量这些c语言的东西,不利于程序的扩展、修改和维护

试着抽 ...

qApp就是个全局,是整个应用程序的instance,
如果我这个程序就是基于MDI的,那么把MainWindow的instance拿出来作为全局其实也并不是妨碍面向对象的原则吧?
这样理解有没有不妥呢?
回复

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-8-28 22:38:16 显示全部楼层
Joey_Chan 发表于 2014-8-28 14:59
我觉得你好像太纠结细节上的东西了,你应该先考虑抽象的东西,而不是直接考虑利用哪个Qt的技术点,这样以 ...

这不生怕头没起好,后面难走么~~
anyway, thx~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了