用Qt練習C++寫一個小的階乘對話框

先來看代碼


/********************************************************************************
** 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還是蠻有意思的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章