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