先來看代碼
/********************************************************************************
** QT Study
**
** Created: Sat Aug 4 19:00:21 2012
** by: Grant
**
**
********************************************************************************/
#include <QApplication>
#include <QLabel>
#include <QPushButton>
#include <QHBoxLayout>
#include <string>
#include <sstream>
#include <QString>
#include <QDialog>
#include "ui_gotocelldialog.h"
using namespace std;
int frac(int N){
if (N > 1)
return N * frac(N-1);
return 1;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv); //QApplication管理圖形用戶接口的各種應用,比如鼠標動作,默認顏色等。
int result, number = 5;
result = frac(number);
QString title;
QWidget *window = new QWidget;
window->setWindowTitle("Scientific Computing Demo by Grant");
QLabel *label = new QLabel("<h2><i>The fractional of 5 is </i> </h2>" + title.setNum(result) );
QPushButton *button = new QPushButton("Quit");
QObject::connect( button,SIGNAL(clicked()),&app,SLOT(quit()) );
QVBoxLayout *layout = new QVBoxLayout;
QDialog *diaglog = new QDialog;
Ui::GoToCellDiag ui;
ui.setupUi(diaglog);
layout->addWidget(diaglog);
layout->addWidget(label);
layout->addWidget(button);
window->setLayout(layout);
window->show();
return app.exec();
}
讓我們來看看一條有趣表達式
QDialog *diaglog =newQDialog;
這條語句是先開闢一段內存空間,然後在其上創建一個QDialog部件(widget)。Widget是windowgadget(窗口配件)的縮寫。
窗口設計好了,那麼我們需要在上面加內容,即初始化。初始化前,我們需要聲明一個類ui,這個ui包含了窗體的子窗口以及佈局,就是我們在designer裏邊看到的。
Ui::GoToCellDiag ui;
然後用對象ui裏邊的成員函數setupUi來初始化對話框。
ui.setupUi(diaglog);
過程就是兩個開闢內存,然後初始化窗口。
Qt還是蠻有意思的。