不要qt designer,像寫java程式一樣,把控制項一個一個寫到介面上。剛開始來個簡單的計數器。
程式執行的結果
程式很簡單,由三個源檔案組成,分別是caculator.h,caculator.cpp,main.cpp
代碼如下:
1、caculator.h
/**//*
* 檔案:caculator.h
* 作者:yangdk
* email:jidacun@163.com
* 首頁:http://blog.csdn.net/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.csdn.net/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.csdn.net/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
好了,這就產生了可執行檔。直接運行就可以得到上面圖示的結果。