• 11945阅读
  • 9回复

[讨论]请问如何快速获取主窗口的指针? [复制链接]

上一主题 下一主题
离线abilitytao
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-16
最近在做Qt网络方面的东西,在服务器端的窗口类里用了QServer类,每次进来一个连接就新建一个QSocket传递数据,但是在QSocket类中获得的数据我想把它放到窗口类里去 不然Socket消亡之后 数据就丢失了 ,不知道有什么好方法吗? 我在网上查了一下 MFC的说了很多方法 但是QT的确没查到。。。Qt这么强大的东西不会连这个都做不到吧?希望大家指点下 谢谢啊
离线wxj120bw

只看该作者 1楼 发表于: 2011-03-16
qt的消息和槽机制也能传递数据 怎么不用呢?
离线abilitytao
只看该作者 2楼 发表于: 2011-03-16
回 1楼(wxj120bw) 的帖子
隔着两层呢。。。后来我用了个方法就是 每一层把父指针传下去。。。
离线wxj120bw

只看该作者 3楼 发表于: 2011-03-16
父指针传下去也行 其实我有个疑问 为什么QSocket消亡会导致受到的数据丢失 难道QSocket类是在一个线程里,连接断开时此线程就结束导致的吗?
离线abilitytao
只看该作者 4楼 发表于: 2011-03-16
回 3楼(wxj120bw) 的帖子
就算不消亡 也找不到了吧。。。哎 我是来求助的。。。有没有类似MFC里面的那种方法能快速获取文档类(这里指主窗口类)指针的。。。
离线wxj120bw

只看该作者 5楼 发表于: 2011-03-17
QApplication::allWidgets()和QWidget::accessibleName()两个方法可以获得主窗口的指针
离线lclflash

只看该作者 6楼 发表于: 2011-03-17
如果应用程序交互很复杂,建议 应该建立单实例的应用程序环境类,利用他进行交互要好一些。
离线abilitytao
只看该作者 7楼 发表于: 2011-03-17
回 5楼(wxj120bw) 的帖子
能具体说说么? 我的QQ是64076241
我刚才查了文档 发现你说的第一个函数是返回列表的。。。那我怎么知道哪个是我要的类啊
离线wxj120bw

只看该作者 8楼 发表于: 2011-03-17
在自己的界面主类中调用setAccessibleName(const QString & name),然后在需要界面主类指针的地方调用QWidgetList QApplication::allWidgets()返回QWidgetList对象,遍历QWidgetList对象,调用accessibleName()方法得到QString值,并主类中设置的name值进行比较久得到主类的指针了。

离线skykingf

只看该作者 9楼 发表于: 2013-01-19
回 8楼(wxj120bw) 的帖子
还挺复杂的
快速回复
限100 字节
 
上一个 下一个