问题是这样的,运行的时候看application out put,有一行
Object::connect: No such signal QListView::pressed( const QModelIndex index ) in selectimagedialog.cpp:35
我用的是QtCreator,Qt版本4.5,平台winXp
以下是一些相关文件。
头文件
class LSelectImage : public QDialog
{
Q_OBJECT
public:
LSelectImage( QWidget * parent = 0,QMap<QString, QRect>* map = 0);
public slots:
void drawSelectImage( const QModelIndex & index );
void drawSelectImage();
public:
QListView* m_pView;
QFrame* m_pDispaly;
QMap<QString, QRect>* m_imageMap;
};
源文件
LSelectImage::LSelectImage( QWidget * parent,QMap<QString, QRect>* map):QDialog(parent)
{
this->setWindowTitle(tr("Select Image"));
//loyout
QPushButton* pOK = new QPushButton("OK");;
QPushButton* pCancel = new QPushButton("Cancel");
m_pView = new QListView;
m_pDispaly = new QFrame;
QGridLayout *layout = new QGridLayout;
m_pView->setFrameStyle(QFrame::Sunken | QFrame::Panel);
m_pDispaly->setFrameStyle(QFrame::Sunken | QFrame::Panel);
layout->addWidget(m_pView, 0, 0, 7, 2);
layout->addWidget(m_pDispaly, 0, 2, 6, 5);
layout->addWidget(pOK, 6, 5);
layout->addWidget(pCancel, 6, 6);
this->setLayout(layout);
this->resize (650, 500 );
//set view/mode
m_imageMap = map;
QStringListModel *model = new QStringListModel(m_imageMap->keys());
m_pView->setModel(model);
//single and slots
connect(pOK, SIGNAL(clicked()), this, SLOT(drawSelectImage())); //这个slot是ok的。
connect(pCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(m_pView, SIGNAL(pressed( const QModelIndex index )), this, SLOT(drawSelectImage(const QModelIndex & index )));
this->show();
}
pro文件
TARGET = GUIDesign
TEMPLATE = app
OBJMOC += moc
SOURCES += main.cpp \
mainwindow.cpp \
parse.cpp \
selectimagedialog.cpp
HEADERS += mainwindow.h \
parse.h \
selectimagedialog.h
我猜是不是pro文件出了问题,因为查帮助文档的时候明明有这个signal ,还请帮帮忙