• 6178阅读
  • 2回复

[讨论]一个初学者关于exec的虚心求教 [复制链接]

上一主题 下一主题
离线little3257
 

只看楼主 倒序阅读 楼主  发表于: 2011-07-22
       大家好,本人最近刚刚接触QT对QT的部分机制并不熟悉,发帖求教,大虾们走过路过,都请停下歇息歇息,帮小弟解答下问题
       问题很简单,就是在main.cpp里面有个exec(),大家都知道其是QT的消息机制的来源,程序将在这个代码处不断循环,直到退出,在进入这个函数前,消息信号是没有作用的。
       在QT给的Demo或者ui_XXX中,我们看到QT除了主界面以外,所以得控件都是new出来。
       这个时候我的朋友就提出了一个观点,所有的对话框,Frame,widget,都可以用exec打开,那么我们就不需要用new这样动态生成子界面的对话框,直接exec打开便可以了,这样就可以使这些主要节目变为自动变量,好维护。
       而我的反驳如下:
              1.这样造成子界面对话框和主界面对话框不能通过信号来传递事件。
              2.这样造成主界面对话框因为子界面的打开而被阻塞无法接受消息和信号。

       各位看官、大虾、大牛,我感觉我的辩驳是这么的无力,能有更多的论据吗?不论您是否赞同我或者我的同事,我都希望您能拿出个简单例子或者说明来支持我或者我同事的观点,小弟在此求教。
       此致
敬礼!
离线myseemylife

只看该作者 1楼 发表于: 2011-07-22
貌似QWidget,QFrame没有exec()
函数吧~只有QDialog有。。。

我的理解是exec()就是一个死循环了。你再开一个exec()因该是相当于。死循环里面再有一个死循环。 。。请各位大牛斧正
蠢笨的愚钝~
离线XChinux

只看该作者 2楼 发表于: 2011-07-23
可以用信号、槽通信的啊,你试验一下,在exec()弹出对话框后,程序修改背后窗口的界面数据,界面会更新的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个