• 5397阅读
  • 3回复

明明没有错误,编译就是说有错误! [复制链接]

上一主题 下一主题
离线dxtus
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-31
本人新手,刚写好一个很简单的程序,没有办法通过编译,我自己是在是找不出错误,麻烦过路高手帮忙指点下!
在Qdevelop中画好.ui,然后写代码如下:



.h文件

#ifndef MAINWINDOWIMPL_H
#define MAINWINDOWIMPL_H
//
#include <QMainWindow>
#include "ui_mainwindow.h"
//
class MainWindowImpl : public QMainWindow, public Ui::MainWindow
{
Q_OBJECT
public:
    MainWindowImpl( QWidget * parent = 0, Qt::WFlags f = 0 );
private slots:
     void Sum();
};
#endif





.cpp文件


#include "mainwindowimpl.h"
//
MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f)
    : QMainWindow(parent, f)
{
    setupUi(this);
    connect (pushButton, SIGNAL (clicked ()), lineEdit3, SLOT (Sum()));
}
void mainwindowimpl::Sum()
   {
    QString stemp;
    long int ltemp;
    ltemp=lineEdit1->text()->toLong()+lineEdit2->text().toLong();
    stemp=QString::number(ltemp);
    lineEdit3.setText(stemp);
   }


main.cpp




#include <QApplication>
#include "mainwindowimpl.h"
//
int main(int argc, char ** argv)
{
    QApplication app( argc, argv );
    MainWindowImpl win;
    win.show();
    app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
    return app.exec();
}




编译错误结果显示:

构建 (make)...
/usr/local/Trolltech/Qt-4.3.0/bin/uic ui/mainwindow.ui -o build/ui_mainwindow.h
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.0/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.0/include/QtCore -I/usr/local/Trolltech/Qt-4.3.0/include/QtCore -I/usr/local/Trolltech/Qt-4.3.0/include/QtGui -I/usr/local/Trolltech/Qt-4.3.0/include/QtGui -I/usr/local/Trolltech/Qt-4.3.0/include -Ibuild -Ibuild -o build/mainwindowimpl.o src/mainwindowimpl.cpp
src/mainwindowimpl.cpp:9: syntax error before `::' token
src/mainwindowimpl.cpp:13: ISO C++ forbids declaration of `ltemp' with no type
src/mainwindowimpl.cpp:13: conflicting types for `int ltemp'
src/mainwindowimpl.cpp:12: previous declaration as `long int ltemp'
src/mainwindowimpl.cpp:13: `lineEdit1' was not declared in this scope
src/mainwindowimpl.cpp:13: `lineEdit2' was not declared in this scope
src/mainwindowimpl.cpp:14: ISO C++ forbids declaration of `stemp' with no type
src/mainwindowimpl.cpp:14: cannot convert `QString' to `int' in initialization
src/mainwindowimpl.cpp:15: syntax error before `.' token
make:
*** [build/mainwindowimpl.o] Error 1
离线jimmyqwy
只看该作者 1楼 发表于: 2009-10-31
是不是.cpp文件里面
void mainwindowimpl::Sum()  这个函数 :: 之前的mainwindowimpl
应该大写开头呢?

就是
void Mainwindowimpl::Sum()  这样~

估计是这个问题吧,你试试看。
离线首席公民
只看该作者 2楼 发表于: 2009-10-31
引用第1楼jimmyqwy于2009-10-31 21:52发表的  :
是不是.cpp文件里面
void mainwindowimpl::Sum()  这个函数 :: 之前的mainwindowimpl
应该大写开头呢?
就是
.......




还有:
connect (pushButton, SIGNAL (clicked ()), lineEdit3, SLOT (Sum()));
                                                                            …………  
-----------------------------------------------
欢迎访问
http://blog.csdn.net/wjstone
-----------------------------------------------
离线午小夜

只看该作者 3楼 发表于: 2009-11-01
现在的电脑,long int 和int 有差么?不都是4个字节么?
如果要把一个整型转变成字符型,用stemp.setNumber(itemp);
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
快速回复
限100 字节
 
上一个 下一个