| 
		    
                    
   但是,你可以使用typedef语句来绕过这个限制。如下所示: 
typedef pair<int,int> IntPair;  [...]    public slots:        void MyWidget::setLocation (IntPair location);     [...]    public signals:        void MyObject::moved (IntPair location);  
  这样使用的话,你就可以得到正确的结果。 
  9.嵌套的类不能位于信号或槽区域内,也不能有信号或者槽。 
  例如,下面的例子中,在class B中声明槽b()是不合语法的,在信号区内声明槽b()也是不合语法的。 
class A  {  Q_OBJECT public:  class B      {  public slots:   // 在嵌套类中声明槽不合语法   void b();         [....]  }; signals:         class B    {    // 在信号区内声明嵌套类不合语法    void b();    [....]         }: };  
  10.友元声明不能位于信号或者槽声明区内。 
  相反,它们应该在普通C++的private、protected或者public区内进行声明。下面的例子是不合语法规范的: 
class someClass : public QObject  {  Q_OBJECT   [...] signals: //信号定义区  friend class ClassTemplate; // 此处定义不合语法 };  
   参考资料 
  QT   KDevelop  
  关于作者 
  唐新华 软件工程师。Email: xhsmart@263.net 
  (参考链接: http://www-128.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.html) 
		    
                      
		      
		      
		   |