- C/C++ code
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>class QTextEdit;class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0);protected: void dragEnterEvent(QDragEnterEvent *); void dropEvent(QDropEvent *);private: bool readFile(const QString &fileName); QTextEdit *textEdit;signals:public slots:};#endif // MAINWINDOW_H
- C/C++ code
#include<QtGui>#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ textEdit = new QTextEdit; setCentralWidget(textEdit); textEdit->setAcceptDrops(false); setAcceptDrops(true); setWindowTitle(tr("Text Rditor"));}void MainWindow::dragEnterEvent(QDragEnterEvent * event){ if(event->mimeData()->hasFormat("text/uri-list")) event->acceptProposedAction();}void MainWindow::dropEvent(QDropEvent * event){ QList<QUrl> urls=event->mimeData()->urls(); if(urls.isEmpty()) return; QString fileName=urls.first().toLocalFile(); if(fileName.isEmpty()) return; if(readFile(fileName)) setWindowTitle(tr("%1-%2").arg(fileName).arg(tr("Drag File")));}
C:\qss\number1-build-desktop\..\number1\mainwindow.cpp:32: 错误:undefined reference to `MainWindow::readFile(QString const&)'
:-1: 错误:collect2: ld returned 1 exit status
照着书打的不知道错在哪...
------解决方案--------------------
函数没定义
------解决方案--------------------
在
private:
bool readFile(const QString &fileName);
QTextEdit *textEdit;
signals:
这里你有申明这个函数, 但是在你的cpp文件中没看到
bool readFile(const QString &fileName);
实现
------------------------------------------------
更多技术文章敬请关注:武汉华嵌-嵌入式培训专家,国内领先的嵌入式服务机构
http://www.embedhq.org
------解决方案--------------------
.h里 bool readFile(const QString &fileName);
.cpp 无实现
没用就注视掉
------解决方案--------------------