当前位置:编程学习 > wap >>

qt connect问题

#include <QApplication>
#include <QTextCodec>
#include <QFont>
#include <QSplitter>
#include <QListWidget>
#include "baseinfo.h"
#include "contact.h"
#include "detail.h"
#include "content.h"
int main(int argc,char *argv[])
{
   QApplication app(argc,argv);
   QFont font("AR PL KaitiM GB",12);
   app.setFont(font);
   QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));

   QSplitter *splitterMain = new QSplitter(Qt::Horizontal,0);
   splitterMain->setOpaqueResize(true);
   
   QListWidget *list = new QListWidget(splitterMain);
   list->insertItem(0,QObject::tr("基本信息"));
   list->insertItem(1,QObject::tr("联系地址"));
   list->insertItem(2,QObject::tr("详细资料"));

   Content *content = new Content(splitterMain);
   QObject::connect(list,SIGNAL(currentRowChanged(int)),
                       content->stack,SLOT(setCurrentIndex(int)));
   splitterMain->setWindowTitle(QObject::tr("修改个人资料"));
   splitterMain->setMinimumSize(splitterMain->minimumSize());
   splitterMain->setMinimumSize(splitterMain->minimumSize());
   splitterMain->show();
   return app.exec();
}


编译错误
main.cpp:27: error: no matching function for call to ‘QObject::connect(QListWidget*&, const char [24], QStackedWidget*&, const char [22])’
/usr/include/qt4/QtCore/qobject.h:191: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
/usr/include/qt4/QtCore/qobject.h:306: note:                 bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
make: *** [main.o] 错误 1

是什么原因呢
PS:content->stack 是类的一个public指针变量 --------------------编程问答-------------------- stack确是是一个指针么? --------------------编程问答-------------------- 是的
#ifndef CONTENT_H
#define CONTENT_H
#include "baseinfo.h"
#include "contact.h"
#include "detail.h"
#include <QFrame>
class QStackedWidget;
class Content:public QFrame
{
  Q_OBJECT
  public:
       Content(QWidget *parent=0,Qt::WindowFlags=0); 
  public:
       QPushButton    *pushButtonAmend;
       QPushButton    *pushButtonClose;
       QStackedWidget *stack;   
  private:
       BaseInfo *baseinfo;
       Contact  *contact;
       Detail   *detail;
};
#endif
--------------------编程问答-------------------- 随便问问
用QObject::调用connect()是不是表示connect()是类QObject的静态成员函数呢? --------------------编程问答-------------------- 在QObject类中,其中一个重载的connect就是一个静态成员函数 --------------------编程问答-------------------- 这个错误没有知道吗?
我也是照书上写的代码 --------------------编程问答-------------------- 是不是参数匹配有问题啊? --------------------编程问答-------------------- 显示是函数用错了

error: no matching function for call


没有匹配的函数....

你看看居然函数的用法,也就是说connect的用法 --------------------编程问答-------------------- 槽函数呢? --------------------编程问答-------------------- 加上 
#include <QStackedWidget> 
试一下. 

因为content.h里面只有一个前置声明, 所以编译器可能不知道QStackedWidget这是一个QObejct的继承类. 
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,