不要qt designer,像写java程序一样,把控件一个一个写到界面上。刚开始来个简单的计数器。
程序执行的结果如图:

程序很简单,由三个源文件组成,分别是caculator.h,caculator.cpp,main.cpp
代码如下:
1、caculator.h

/**//*
* 文件:caculator.h
* 作者:yangdk
* email:jidacun@163.com
* 主页:http://blog.youkuaiyun.com/yang_dk
*/

#ifndef _CACULATOR_H
#define _CACULATOR_H

#include <QDialog>

class QLabel;
class QLineEdit;
class QPushButton;
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;

class CacuDialog : public QDialog

...{
Q_OBJECT
public:
CacuDialog(QWidget *parent = 0);

private slots:
void add();
void dec();
void mul();
void div();
void clear();

private:
QLineEdit *editFirst;
QLineEdit *editSecond;
QLineEdit *editResult;
QPushButton *addButton,*decButton,*mulButton,*divButton;
QPushButton *clearButton;
};

#endif

2、caculator.cpp

/**//*
* 文件:caculator.cpp
* 作者:yangdk
* 邮箱:jidacun@163.com
* 主页:http://blog.youkuaiyun.com/yang_dk
*/

#include <QtGui>
#include "caculator.h"

CacuDialog::CacuDialog(QWidget *parent) : QDialog(parent)

...{
editFirst = new QLineEdit;
editSecond = new QLineEdit;
editResult = new QLineEdit;
editResult->setReadOnly(true); //显示控件只读
editResult->setAlignment(Qt::AlignRight); //让结果的显示向右对齐
addButton = new QPushButton(tr("Add"));
decButton = new QPushButton(tr("Dec"));
mulButton = new QPushButton(tr("Mul"));
divButton = new QPushButton(tr("Div"));
clearButton = new QPushButton(tr("clear"));
clearButton->setDefault(true);

connect(addButton,SIGNAL(clicked()),this,SLOT(add()));
connect(decButton,SIGNAL(clicked()),this,SLOT(dec()));
connect(mulButton,SIGNAL(clicked()),this,SLOT(mul()));
connect(divButton,SIGNAL(clicked()),this,SLOT(div()));
connect(clearButton,SIGNAL(clicked()),this,SLOT(clear()));

QVBoxLayout *mainLayout = new QVBoxLayout;
QHBoxLayout *top = new QHBoxLayout;
QGridLayout *bottom =new QGridLayout;
top->addWidget(editFirst);
top->addWidget(editSecond);
top->addWidget(editResult);
bottom->addWidget(addButton, 0, 0);
bottom->addWidget(decButton, 0, 1);
bottom->addWidget(mulButton, 1, 0);
bottom->addWidget(divButton, 1, 1);
bottom->addWidget(clearButton,0,2,2,1);//占两横一列
mainLayout->addLayout(top);
mainLayout->addLayout(bottom);
setLayout(mainLayout);
}

void CacuDialog::add()

...{
double res;
res = editFirst->text().toDouble()+editSecond->text().toDouble();
editResult->setText(QString::number(res));
}

void CacuDialog::dec()

...{
double res;
res = editFirst->text().toDouble()-editSecond->text().toDouble();
editResult->setText(QString::number(res));
}

void CacuDialog::mul()

...{
double res;
res = editFirst->text().toDouble()*editSecond->text().toDouble();
editResult->setText(QString::number(res));
}

void CacuDialog::div()

...{
double res;
res = editFirst->text().toDouble()/editSecond->text().toDouble();
editResult->setText(QString::number(res));
}

void CacuDialog::clear()

...{
editFirst->setText("");
editSecond->setText("");
editResult->setText("0");
}
3、main.cpp

/**//*
* 文件:main.cpp
* 作者:yangdk
* email:jidacun@163.com
* 主页:http://blog.youkuaiyun.com/yang_dk
*/

#include <QApplication>
#include <QtGui>

#include "caculator.h"

int main(int argc, char *argv[])

...{
QApplication app(argc,argv);
CacuDialog dialog;
return dialog.exec();
}
ok!将这三个文件放在同一个目录下,进入这个文件夹,执行下面三句话
qmake -project
qmake
make //这一局视你的环境而定,可能是make,tmake,nmake
好了,这就生成了可执行文件。直接运行就可以得到上面图示的结果。