Qt高手来指教一下

来源:百度知道 编辑:UC知道 时间:2024/06/04 22:24:13
我现在想做一个QWidget,上面有一个按钮,通过这个按钮来show另外一个QWidget,然后我想让这俩个QWidget能够通信,用什么机制来实现呢?用友元函数,还是继承?

最简单直观的办法,自己写一个类,继承QWidget,作为你的整体widget,成员包含一个pushButton和一个QWidget。
这样就可以通过connect(button->clicked(),QWidget->show())实现你的第一个要求了,至于通信就更不用说了,第二个widget是第一个widget的成员变量,想怎么通信就怎么通信了

进我QQ空间看吧

实现通讯的方法很多,但是要是按照QT设计者的思想来实现的话肯定是用signals和slot来实现。在父Widget上定义signals(通讯的数据通过signals参数携带),在子Widget定义slot。当父Widget要给子Widget通讯的时候,就发射该信号函数:
emit signals(*,*,*); (注:*代表携带数据的参数)
然后在子Widget中实现slot函数来捕获该signals,捕获的方法是在子Widget中调用connect()函数(注:当然你可以在子Widget构造函数中调用connect()),从而通过connect()将父窗体的signals函数同子窗体的slot函数关联起来,两个函数通过参数进行数据传递。
具体可以参考俺博客里面归总的一些信号和油槽的机制,很详细:http://hi.baidu.com/qinpanke/blog/item/9d64a819eda50d0e35fa41bd.html