• 8984阅读
  • 15回复

窗口之间的控件交互 [复制链接]

上一主题 下一主题
离线arthur_liu
 
只看楼主 倒序阅读 楼主  发表于: 2008-09-25
— 本帖被 XChinux 执行加亮操作(2008-09-25) —
我新建了一个mainwindow窗口,在这个窗口中利用下拉菜单调出其他的窗口。在其他的窗口中需要完成一些参数的设置,等设置完成后,我希望mainwindow窗口中的一些组件有所动作。
我的解决方案是:开启一个定时器,检测其他窗口中的参数设置是否完成,如果完成,就作出相应动作。

我自我感觉这种方法很不好,所以恳请大虾们给出一个更好的解决方案。
do right, be good!
离线netlove

只看该作者 1楼 发表于: 2008-09-25
当参数设置完了,给主窗口发消息不行吗?
离线sbtree
只看该作者 2楼 发表于: 2008-09-25
设置窗口使用对话框,在点击对话框确定按钮之后会发送accepted()信号,把这个信号跟你的mainwindow中自定义的槽连接,在槽中作相应的动作。因为点击确定按钮之后,窗体只是隐藏了,并没有被删除,仍然可以使用它的指针来访问它,获取设置信息。
windows 7 + VC++2008 + Qt4.5.2
离线arthur_liu
只看该作者 3楼 发表于: 2008-09-26
不同窗口之间可以用信号和槽相互连接吗?我怎么感觉好像不可以呢
请大虾指点一二
do right, be good!
离线rockyluo

只看该作者 4楼 发表于: 2008-09-26
我现在采用的是设置全局变量
主窗口中有个动作后就设置这个变量,
子窗口中通过判断这个变量来发生改变。。。。。。
看下我这个帖子
http://www.qtcn.org/bbs/read.php?tid=12945&fpage=0&toread=&page=1
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线netlove

只看该作者 5楼 发表于: 2008-09-26
可以,你可以设置一个管理窗口,管理所有的窗口类
离线arthur_liu
只看该作者 6楼 发表于: 2008-09-26
采用全局变量和采用一个管理窗口本人认为都不是太好的解决方案,如果可以像信号和槽这样相互连接就好了
do right, be good!
离线rockyluo

只看该作者 7楼 发表于: 2008-09-26
你的界面如果简单的话,可以在程序一运行时就把所有窗口new出来,这样的话,信号/槽就可以用了
复杂就不好说了  还望高人指点......................

另外 netlove能具体说说你的思路么?关于窗口管理!怎么实现?
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线wvins
只看该作者 8楼 发表于: 2008-09-26
关注..

Qt中有没有类似ShowModal的方法?
有没有模态对话框,必须要关闭他,其他的窗口才能够相应事件
离线sbtree
只看该作者 9楼 发表于: 2008-09-26
引用第8楼wvins于2008-09-26 16:43发表的  :
关注..
Qt中有没有类似ShowModal的方法?
有没有模态对话框,必须要关闭他,其他的窗口才能够相应事件

setModal ( true )
windows 7 + VC++2008 + Qt4.5.2
离线netlove

只看该作者 10楼 发表于: 2008-09-26
TO:rockyluo
我采取窗口管理。是因为当初有好多的窗口,有一个相当与后台窗口,不会出现,所有的窗口总得来说受他控制。但是如果窗口少,也没必要,用信号、槽就可以。但是我感觉窗口多的话,还是有管理窗口比较好
离线ufowhu
只看该作者 11楼 发表于: 2008-10-09
请问netlove,管理窗口怎么实现,给个例子
离线arthur_liu
只看该作者 12楼 发表于: 2008-12-13
你可以专门设计一个类用来进行窗口管理啊,就像很多时候我们的mainwindow就可以完成窗口管理的工作。
do right, be good!
离线stdjgwyc
只看该作者 13楼 发表于: 2008-12-15
引用第2楼sbtree于2008-09-25 16:49发表的  :
设置窗口使用对话框,在点击对话框确定按钮之后会发送accepted()信号,把这个信号跟你的mainwindow中自定义的槽连接,在槽中作相应的动作。因为点击确定按钮之后,窗体只是隐藏了,并没有被删除,仍然可以使用它的指针来访问它,获取设置信息。

我的方法有两个:
第一个方法于引用的差不多,
只是我在对话框里写了一个getResult()函数,accept之后,窗体隐藏,我在主窗口中调用getResult()函数来获取设置。
第二个方法:
将主窗体的this指针传递给对话框~ 由对话框负责管理一切更新操作。不过不知道是否规范,一般没用。


希望了解更多更成熟、安全的方法
QT交流群群号:2906359,(200人大群,持续升级)
离线stdjgwyc
只看该作者 14楼 发表于: 2008-12-16
引用第5楼netlove于2008-09-26 10:42发表的  :
可以,你可以设置一个管理窗口,管理所有的窗口类


不同窗口之间可以用信号和槽相互连接吗?
能否更详细些?谢谢
QT交流群群号:2906359,(200人大群,持续升级)
离线stdjgwyc
只看该作者 15楼 发表于: 2008-12-16
引用第10楼netlove于2008-09-26 17:45发表的  :
我采取窗口管理。是因为当初有好多的窗口,有一个相当与后台窗口,不会出现,所有的窗口总得来说受他控制。但是如果窗口少,也没必要,用信号、槽就可以。但是我感觉窗口多的话,还是有管理窗口比较好


TO:  netlove
我也很关注这个窗口管理器~
希望你能讲详细些~~
好像好几个人都关心这个窗口管理器呢~~~~
QT交流群群号:2906359,(200人大群,持续升级)
快速回复
限100 字节
 
上一个 下一个