我有Qt Creator中取得了Qt工程。 我讓創作者本身產生一個私有槽函數FX。 on_pushbutton_clicked()。 此功能在頭部聲明,函數本身是由Qt Creator中創建cpp文件。 當我移動通過Qt Creator中產生的另一個CPP文件(這是在項目補充說,它已同包括所生成的CPP。 當我嘗試編譯它,我得到LNK2019錯誤CPP文件中的函數。 是有什麼辦法可以有縫隙的功能在不同的文件? 我使用VC編譯。 好了,這是從代碼提取物。(這是相當長) gui.hQt的移動插槽功能到另一個CPP文件
#ifndef GUI_H
#define GUI_H
#include <QMainWindow>
#include "buffer.h"
#include <string>
#include <map>
#include <math.h>
#include <sstream>
#include <stdlib.h>
#include "qcustomplot.h"
#include <limits>
#include <time.h>
#include <random>
namespace Ui {
class GUI;
}
class GUI : public QMainWindow
{
Q_OBJECT
public:
explicit GUI(QWidget *parent = 0);
~GUI();
private slots:
void on_setall_clicked();
void on_integrace_button_clicked();
void on_elipsy_button_clicked();
void on_grafy_button_clicked();
private:
Ui::GUI *ui;
};
#endif // GUI_H
gui.cpp
#include "gui.h"
#include "ui_gui.h"
double drand(double from, double to){
double f = (double)rand()/RAND_MAX;
return from + f * (to - from);
}
GUI::GUI(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::GUI)
{
ui->setupUi(this);
srand(time(0));
}
GUI::~GUI()
{
delete ui;
}
void GUI::on_setall_clicked(){...};
void GUI::on_grafy_button_clicked(){...};
void GUI::on_integrace_button_clicked(){...};
elipsy.cpp
#include "gui.h"
void GUI::on_elipsy_button_clicked(){...};
GUI.pro
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-27T09:01:31
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
TARGET = GUI
TEMPLATE = app
SOURCES += main.cpp\
gui.cpp \
solve_rpn.cpp \
shunting_yard.cpp \
qcustomplot.cpp \
elipsy.cpp \
grafy.cpp \
integrace.cpp
HEADERS += gui.h \
buffer.h \
qcustomplot.h
FORMS += gui.ui
和錯誤代碼,它給了我,當我嘗試用elipsy_button_clicked函數編譯()比其他gui.cpp文件
moc_gui.obj:-1: Chyba:LNK2019: unresolved external symbol "private: void __cdecl GUI::on_elipsy_button_clicked(void)" ([email protected]@@AEAAXXZ) referenced in function "private: static void __cdecl GUI::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@[email protected]@@[email protected])
debug\GUI.exe:-1: Chyba:LNK1120: 1 unresolved externals
好,如果你需要整個源代碼,我上傳了它 http://seed.gweana.eu/public/GUI.7z
F IXED:該文件被項目忽略,運行qmake再次解決了這個問題。您的答案:)
它很難告訴你做什麼,你真的需要張貼代碼所以我們可以看看。你基本上需要像爲普通的C++類那樣去做。 –
請向我們顯示您的代碼 –
請顯示確切的錯誤信息。 – hyde