• 5669阅读
  • 4回复

[提问]QT两个类(页面)之间的交流哪种方式最好? [复制链接]

上一主题 下一主题
离线楚来兴
 
只看楼主 正序阅读 楼主  发表于: 2013-08-19
主要涉及的是C++的知识,以QT两个页面之间的联系为例。

情况比较简单,就是主页面下有左右两个页面通过layout排好了,当左右没什么联系时,左右两个页面类的封装性可以做得很好,但是当左右两个页面之间需要联系时,比如左边发出的某个信号需要连接到右边页面的某个槽上时,怎么处理比较简单,又不怎么破坏分装性?

一种方法是在主界面里面联系,这比较常见,主界面里面申明了左右界面的对象,所以直接调用相关的信号和槽就可以了

哪位知道有什么方法在可以直接连接吗?或者有无必要?
比如将左边的信号申明为公共静态函数,直接在右边的类里面引用,我试了下总是报错,不理解这样在理论上是否可行,有无必要?(我主要是考虑这样调用不用牵扯到具体的对象,代码的可移植性会变好,而在主界面类里面调用也需要将相关的信号函数等申明为公共类型,所以在封装性上也没有损失)
离线dflangsky

只看该作者 4楼 发表于: 2013-08-22
回 3楼(楚来兴) 的帖子
move过去呗
离线楚来兴
只看该作者 3楼 发表于: 2013-08-20
引用第2楼dbzhang800于2013-08-19 14:33发表的  :
信号槽没问题,但是你想弄个静态的信号,或者不创建对象你就想connect信号和槽,那么理论上不可行


嗯,我C++基础不行,想岔了,后来再看看了,这是个意义不大的问题,类的静态函数使用非静态成员还是会牵涉到对象的创建,好像是专门干这个活的的友元也同样需要对象的创建,所以发现这是个意义不大的问题,直接在包含两个子界面的界面上connect更加直观明了。
再请教个小问题,像QQ那种登陆后主界面自动显示在电脑右侧QT里用的是哪个函数,我看show()没有这方面的参数,么非是自己重载show
离线dbzhang800

只看该作者 2楼 发表于: 2013-08-19
引用楼主楚来兴于2013-08-19 12:26发表的 QT两个类(页面)之间的交流哪种方式最好? :
比如将左边的信号申明为公共静态函数,直接在右边的类里面引用,我试了下总是报错,不理解这样在理论上是否可行,

信号槽没问题,但是你想弄个静态的信号,或者不创建对象你就想connect信号和槽,那么理论上不可行
离线jdwx

只看该作者 1楼 发表于: 2013-08-19
回 楼主(楚来兴) 的帖子
要看是多少个联系,几个,用信号槽挺好。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个