头文件
#include <qwidget.h>
#include <qpushbutton.h>
#include <qstring.h>
#include <qlineedit.h>
class jisuanqi:public QWidget
{
Q_OBJECT
public:
jisuanqi(QWidget *parent=0,const char* name=0);
private:
QLineEdit *lineedit;
QPushButton *btn0;
QPushButton *btn1;
QPushButton *btn2;
QPushButton *btn3;
QPushButton *btn4;
QPushButton *btn5;
QPushButton *btn6;
QPushButton *btn7;
QPushButton *btn8;
QPushButton *btn9;
QPushButton *add;
QPushButton *sub;
QPushButton *mul;
QPushButton *dev;
QPushButton *result;
QPushButton *on;
QPushButton *off;
signals:
void description(QString &);
slots:
void btnzero(void);
void xianshi(QString &);
};
部件定义
#include "jisuanqi.h"
#include <qlayout.h>
jisuanqi::jisuanqi(QWidget *parent,const char* name)
:QWidget( parent, name)
{
setMinimumSize(300,350);
setMaximumSize(300,350);
QGridLayout *layout = new QGridLayout(this,5,5,5);
lineedit = new QLineEdit(this);
lineedit->setText("text");
lineedit->setFixedSize(320,50);
layout->addMultiCellWidget(lineedit,0,0,0,4);
btn0 = new QPushButton("0",this);
btn0->setFixedHeight(50);
connect(btn0 ,SIGNAL(click()) ,this ,SLOT(btnzero()) );
connect(this ,SIGNAL(description(QString &)) ,this ,SLOT(xianshi(QString &)) );
layout->addMultiCellWidget(btn0,4,4,0,2);
部分省略
}
void jisuanqi::btnzero( )
{
emit description("0");
}
void jisuanqi::xianshi(QString &str)
{
lineedit->setText(str);
}
编译出错
In file included from jisuanqi.cpp:1:
jisuanqi.h:34: parse error before `(' token
jisuanqi.cpp:91: no `void jisuanqi::btnzero()' member function declared in
class `jisuanqi'
jisuanqi.cpp: In member function `void jisuanqi::btnzero()':
jisuanqi.cpp:92: no matching function for call to `jisuanqi::description(const
char[2])'
jisuanqi.h:32: candidates are: void jisuanqi::description(QString&)