//界面编程
#include "widget.h"
#include "ui_widget.h" Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
} Widget::~Widget()
{
delete ui;
} void Widget::on_pushButton_clicked()
{
QString s1=ui->lineEdit->text();//得到lineEdit用户输入的文本
QString s2=ui->lineEdit_2->text();
int a=s1.toInt()+s2.toInt();//toint()将文本转化为整数
ui->label->setText(QString::number(a));
}
非界面编程
#ifndef DIALOG_H
#define DIALOG_H #include <QDialog>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel> class Dialog : public QDialog
{
Q_OBJECT public:
Dialog(QWidget *parent = );
~Dialog();
private:
//使用哪个控件,需要引用该控件的头文件(QString除外)
QPushButton *btn1;
QLineEdit *edit1,*edit2;
QLabel *label1;
private slots:
void add();
}; #endif // DIALOG_H
#include "dialog.h"
#include <QGridLayout> //构造函数
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
btn1=new QPushButton(this);
edit1=new QLineEdit(this);
edit2=new QLineEdit(this);
label1=new QLabel(this);
btn1->setText("求和");
label1->setText("label");
QGridLayout * layout=new QGridLayout(this);
//QGridLayout是网格布局,第二个参数表示第几行,第三个参数表示第几列,QGridLayout一般需要上下左右都要对齐
layout->addWidget(edit1,,);
layout->addWidget(edit2,,);
layout->addWidget(btn1,,);
layout->addWidget(label1,,);
//只要是主控件上的控件,当主控件释放的时候,主控件上的所有控件都会被释放,不需要使用delete(游离主控件之外的空间不会被释放) //将btn1点击事件和add函数关联起来
connect(btn1,SIGNAL(clicked()),this,SLOT(add()));
} void Dialog::add()
{
QString s1=edit1->text();
QString s2=edit2->text();
bool on=false;
//将字符串s1转化成10进制,转化失败on返回false
int a=s1.toInt(&on,)+s2.toInt(&on,);
label1->setText(QString::number(a));
} Dialog::~Dialog()
{ }