今天第一天入QT坑。Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。
今天主要是做了一个在lineedit输入一个数字,我把里面的内容转换成园的面积这么一个程序。废话不多说直接上程序:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel> //包含label的头文件
#include <QLineEdit> //包含lineEdit
#include <QPushbutton>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QLabel *label1,*label2;
QLineEdit *linedit;
QPushButton *button;
private slots:
void showArea();
};
#endif // MAINWINDOW_H
首先是MAINWINDOW头文件,这个是一个类,用来存储我所有的对象,比如我有Button,linedit,label这类控件。大概就这样,然后showArea()是我定义的一个函数,是用来计算圆面积的这么一个函数,到后面你会发现我把他用来跟按键的控件联系起来了。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGridLayout>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
label1=new QLabel(this);
label1->setText(tr("请输入圆的半径 :"));
linedit=new QLineEdit(this);
label2=new QLabel(this);
button=new QPushButton(this);
button->setText(tr("show the area"));
label1->setGeometry(10,10,100,40);
label1->clearMask();
label2->setGeometry(10,90,100,20);
label2->clearMask();
button->setGeometry(10,50,100,20); //设置button的位置和大小
button->clearMask();
linedit->setGeometry(120,10,100,30);
connect(button,SIGNAL(clicked()),this,SLOT(showArea()));
}
MainWindow::~MainWindow()
{
delete ui;
}
const static double PI=3.1415926;
void MainWindow::showArea()
{
bool ok;
QString tempstr;
QString valueStr=linedit->text();
int ValueInt=valueStr.toInt(&ok);
double area=ValueInt*ValueInt*PI;
label2->setText(tempstr.setNum(area));
}
connect是用来联系关联按键的click(),就是按键的点击事件,其他就是我如何新生成的控件,以及对控件进行的一个设定位置和大小,或者是文本罢了。