先来看代码
/********************************************************************************
** 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还是蛮有意思的。