添加轴滑块时未定义的主参考

时间:2015-11-02 02:41:13

标签: c++ qt opengl

我目前正在尝试添加滑块以在OpenGl / QT / C ++中的不同轴上移动,但对“主要''”进行了模糊的“未定义”引用。编译时出错。这是我的主要班级......

我的标题文件:

#include "MyWidget.h"
#ifndef MYMAIN_H
#define MYMAIN_H

class MyMain: public QObject{

    public:
    MyMain();
    int main(int argc, char *argv[]);
    MyWidget *MyWidget;

    public slots:
    void setXTranslation(int value);
};

#endif

我的源文件:

#include "MyMain.h"

 MyMain::MyMain()
 {
 }

 int MyMain::main(int argc, char *argv[]) {

     some code here...


     QSlider *xSlider = new QSlider(Qt::Vertical);
     xSlider->setRange(0, 10);

     QObject::connect(xSlider, SIGNAL(valueChanged(int)),
                 this, SLOT(setXTranslation(int)));


     some more code here.... 

     // start it running
     return app.exec();
 }
 void MyMain::setXTranslation(int value)
 {
     some more code here....
 }

3 个答案:

答案 0 :(得分:1)

int MyMain::main(int argc, char *argv[]) {
    ^^^^^^^^

删除此内容。

main函数需要位于全局范围内,而不是MyMain

答案 1 :(得分:1)

C ++语言期望main()函数在全局范围内(尽管它不是关键字)并将其识别为程序的入口点。

如果在您的案例中main()在类中定义为MyMain::main(),则编译器不会将其视为/识别为入口点。

已回答类似问题here

答案 2 :(得分:1)

  

程序应包含一个名为main的全局函数。

您可以像这样实现主要功能:

int main(int argc, char* argv[]) {
     return MyMain().main(argc, argv);
}